Skip to main content

zammad_api/api/
states.rs

1use reqwest::Method;
2
3use crate::client::Client;
4use crate::error::Result;
5use crate::models::TicketState;
6
7const PATH: &str = "api/v1/ticket_states";
8
9/// Ticket-state endpoints.
10#[derive(Debug)]
11pub struct StatesApi<'a> {
12    client: &'a Client,
13}
14
15impl<'a> StatesApi<'a> {
16    pub(crate) fn new(client: &'a Client) -> Self {
17        Self { client }
18    }
19
20    /// `GET /api/v1/ticket_states` - every configured state.
21    pub async fn list(&self) -> Result<Vec<TicketState>> {
22        let req = self.client.request(Method::GET, PATH);
23        self.client.send_json(req).await
24    }
25
26    /// `GET /api/v1/ticket_states/:id`.
27    pub async fn get(&self, id: u64) -> Result<TicketState> {
28        let req = self.client.request(Method::GET, &format!("{PATH}/{id}"));
29        self.client.send_json(req).await
30    }
31}