squarespace_commerce/
orders.rs

1use anyhow::Context;
2use tracing::{debug, info};
3
4use crate::{
5    client::Client,
6    types::orders::{Order, OrderResponse},
7};
8
9impl Client {
10    /// Retrieves all orders from the Squarespace Commerce API.
11    pub async fn retrieve_all_orders(&self) -> anyhow::Result<Vec<Order>> {
12        info!("Retrieving all orders");
13        let mut url_builder = Self::base_url_builder();
14        url_builder.add_route("orders");
15        let response = self.get_default_get_request(url_builder.build()).await?;
16
17        let order_response: OrderResponse = response.json().await?;
18        Ok(order_response.result)
19    }
20
21    /// Retrieves a specific order by its `order_id`.
22    pub async fn retrieve_order(&self, order_id: impl AsRef<str>) -> anyhow::Result<Order> {
23        info!("Retrieving order with ID: {}", order_id.as_ref()); // More specific log message
24
25        let mut url_builder = Self::base_url_builder();
26        url_builder.add_route("orders").add_route(order_id.as_ref());
27
28        let response = self.get_default_get_request(url_builder.build()).await?;
29
30        debug!("{:?}", response);
31
32        response
33            .json()
34            .await
35            .context("Error decoding Order from retrieve_order response.")
36    }
37}