shopify_client/services/order/
mod.rs1pub 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}