diff --git a/client/src/api/routes/company.rs b/client/src/api/routes/company.rs new file mode 100644 index 0000000..48d96be --- /dev/null +++ b/client/src/api/routes/company.rs @@ -0,0 +1,65 @@ +use crate::api::{ + types::{company::Company, paginated_response::PaginatedResponse}, + FastInsidersApi, +}; + +impl FastInsidersApi { + pub async fn get_company( + &self, + page: i64, + size: i64, + ) -> Result, ()> { + let route = &format!("{}/company?page={}&size={}", self.url, page, size,); + + #[cfg(client)] + let res = reqwasm::http::Request::get(route) + .send() + .await + .map_err(|_| ())? + .json::>() + .await + .map_err(|_| ())?; + + #[cfg(engine)] + let res = reqwest::get(route) + .await + .map_err(|_| ())? + .json::>() + .await + .map_err(|_| ())?; + + Ok(res) + } + + pub async fn get_company_by_name( + &self, + name: String, + limit: Option, + ) -> Result, ()> { + let route = &format!( + "{}/company/{}?{}", + self.url, + name, + limit.map(|l| format!("limit={}", l)).unwrap_or_default() + ); + + #[cfg(client)] + let res = reqwasm::http::Request::get(route) + .send() + .await + .map_err(|_| ())? + .json::>() + .await + .map_err(|_| ())?; + + #[cfg(engine)] + let res = reqwest::get(route) + .await + .map_err(|_| ())? + .json::>() + .await + .map_err(|_| ())?; + + Ok(res) + } +}