shopify_client/services/order/
mod.rs

1pub mod remote;
2
3use std::sync::Arc;
4
5use crate::{
6    common::types::APIError,
7    types::order::{GetOrderResp, OrderQueryResp, PatchOrderRequest},
8};
9
10pub struct Order {
11    pub shop_url: Arc<String>,
12    pub version: Arc<String>,
13    pub access_token: Arc<String>,
14}
15
16impl Order {
17    pub fn new(shop_url: Arc<String>, version: Arc<String>, access_token: Arc<String>) -> Self {
18        Order {
19            shop_url,
20            version,
21            access_token,
22        }
23    }
24
25    pub async fn get_with_id(&self, order_id: &String) -> Result<GetOrderResp, APIError> {
26        remote::get_order_with_id(&self.shop_url, &self.version, &self.access_token, order_id).await
27    }
28
29    pub async fn get_with_name(&self, order_name: &String) -> Result<OrderQueryResp, APIError> {
30        remote::get_order_with_name(
31            &self.shop_url,
32            &self.version,
33            order_name,
34            &self.access_token,
35        )
36        .await
37    }
38
39    pub async fn patch(
40        &self,
41        order_id: &String,
42        patch_request: &PatchOrderRequest,
43    ) -> Result<GetOrderResp, APIError> {
44        remote::patch_order(
45            &self.shop_url,
46            &self.version,
47            &self.access_token,
48            order_id,
49            patch_request,
50        )
51        .await
52    }
53}