From 2c5b7da8165e3f8b90748e8ced1de0e3e8d52309 Mon Sep 17 00:00:00 2001 From: lazydancer Date: Sun, 22 Dec 2024 17:33:11 -0500 Subject: Initial --- rust_backend/src/eve_service.rs | 42 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 rust_backend/src/eve_service.rs (limited to 'rust_backend/src/eve_service.rs') diff --git a/rust_backend/src/eve_service.rs b/rust_backend/src/eve_service.rs new file mode 100644 index 0000000..c831847 --- /dev/null +++ b/rust_backend/src/eve_service.rs @@ -0,0 +1,42 @@ +use crate::eve_api::EveApiClient; +use crate::pathfinding::Location; +use crate::market::Orders; + +use std::error::Error; + +pub struct EveService { + client: EveApiClient, +} + +impl EveService { + pub fn new() -> Result> { + let eve_api_client = EveApiClient::new()?; + Ok(EveService { client: eve_api_client, }) + } + + pub fn get_authorization_url(&self) -> String { + self.client.get_authorization_url() + } + + pub async fn exchange_code_for_token(&self, code: &str) -> Result<(), Box> { + self.client.exchange_code_for_token(code).await + } + + pub async fn location(&self) -> Result> { + self.client.request_location().await.map_err(|e| e.into()) + } + + pub async fn updated_orders(&self, current_orders: &Orders) -> Result> { + let mut region_orders = Orders::new(); + + let regions = current_orders.expired_regions(); + + for ®ion in regions.iter() { + let (orders, expiry) = self.client.request_orders(region).await?; + region_orders.insert(region, orders, expiry); + } + + Ok(region_orders) + + } +} -- cgit v1.3