shopify_client/services/order/
mod.rs

1pub mod remote;
2
3use std::sync::Arc;
4
5use crate::{
6    common::types::{APIError, RequestCallbacks},
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    pub callbacks: Arc<RequestCallbacks>,
15}
16
17impl Order {
18    pub fn new(
19        shop_url: Arc<String>,
20        version: Arc<String>,
21        access_token: Arc<String>,
22        callbacks: Arc<RequestCallbacks>,
23    ) -> Self {
24        Order {
25            shop_url,
26            version,
27            access_token,
28            callbacks,
29        }
30    }
31
32    pub async fn get_with_id(&self, order_id: &String) -> Result<GetOrderResp, APIError> {
33        remote::get_order_with_id(
34            &self.shop_url,
35            &self.version,
36            &self.access_token,
37            &self.callbacks,
38            order_id,
39        )
40        .await
41    }
42
43    pub async fn get_with_name(&self, order_name: &String) -> Result<OrderQueryResp, APIError> {
44        remote::get_order_with_name(
45            &self.shop_url,
46            &self.version,
47            order_name,
48            &self.access_token,
49            &self.callbacks,
50        )
51        .await
52    }
53
54    pub async fn patch(
55        &self,
56        order_id: &String,
57        patch_request: &PatchOrderRequest,
58    ) -> Result<GetOrderResp, APIError> {
59        remote::patch_order(
60            &self.shop_url,
61            &self.version,
62            &self.access_token,
63            &self.callbacks,
64            order_id,
65            patch_request,
66        )
67        .await
68    }
69}