ynab_api_async_fork/apis/
payees_api.rs

1/*
2 * YNAB API Endpoints
3 *
4 * Our API uses a REST based design, leverages the JSON data format, and relies upon HTTPS for transport. We respond with meaningful HTTP response codes and if an error occurs, we include error details in the response body.  API Documentation is at https://api.ynab.com
5 *
6 * The version of the OpenAPI document: 1.72.1
7 * 
8 * Generated by: https://openapi-generator.tech
9 */
10
11use std::rc::Rc;
12use std::borrow::Borrow;
13#[allow(unused_imports)]
14use std::option::Option;
15
16use reqwest;
17
18use super::{Error, configuration};
19
20pub struct PayeesApiClient {
21    configuration: Rc<configuration::Configuration>,
22}
23
24impl PayeesApiClient {
25    pub fn new(configuration: Rc<configuration::Configuration>) -> PayeesApiClient {
26        PayeesApiClient {
27            configuration,
28        }
29    }
30}
31
32pub trait PayeesApi {
33    fn get_payee_by_id(&self, budget_id: &str, payee_id: &str) -> Result<crate::models::PayeeResponse, Error>;
34    fn get_payees(&self, budget_id: &str, last_knowledge_of_server: Option<i64>) -> Result<crate::models::PayeesResponse, Error>;
35    fn update_payee(&self, budget_id: &str, payee_id: &str, data: crate::models::PatchPayeeWrapper) -> Result<crate::models::SavePayeeResponse, Error>;
36}
37
38impl PayeesApi for PayeesApiClient {
39    fn get_payee_by_id(&self, budget_id: &str, payee_id: &str) -> Result<crate::models::PayeeResponse, Error> {
40        let configuration: &configuration::Configuration = self.configuration.borrow();
41        let client = &configuration.client;
42
43        let uri_str = format!("{}/budgets/{budget_id}/payees/{payee_id}", configuration.base_path, budget_id=crate::apis::urlencode(budget_id), payee_id=crate::apis::urlencode(payee_id));
44        let mut req_builder = client.get(uri_str.as_str());
45
46        if let Some(ref user_agent) = configuration.user_agent {
47            req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
48        }
49        if let Some(ref token) = configuration.bearer_access_token {
50            req_builder = req_builder.bearer_auth(token.to_owned());
51        };
52
53        // send request
54        let req = req_builder.build()?;
55
56        Ok(client.execute(req)?.error_for_status()?.json()?)
57    }
58
59    fn get_payees(&self, budget_id: &str, last_knowledge_of_server: Option<i64>) -> Result<crate::models::PayeesResponse, Error> {
60        let configuration: &configuration::Configuration = self.configuration.borrow();
61        let client = &configuration.client;
62
63        let uri_str = format!("{}/budgets/{budget_id}/payees", configuration.base_path, budget_id=crate::apis::urlencode(budget_id));
64        let mut req_builder = client.get(uri_str.as_str());
65
66        if let Some(ref s) = last_knowledge_of_server {
67            req_builder = req_builder.query(&[("last_knowledge_of_server", &s.to_string())]);
68        }
69        if let Some(ref user_agent) = configuration.user_agent {
70            req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
71        }
72        if let Some(ref token) = configuration.bearer_access_token {
73            req_builder = req_builder.bearer_auth(token.to_owned());
74        };
75
76        // send request
77        let req = req_builder.build()?;
78
79        Ok(client.execute(req)?.error_for_status()?.json()?)
80    }
81
82    fn update_payee(&self, budget_id: &str, payee_id: &str, data: crate::models::PatchPayeeWrapper) -> Result<crate::models::SavePayeeResponse, Error> {
83        let configuration: &configuration::Configuration = self.configuration.borrow();
84        let client = &configuration.client;
85
86        let uri_str = format!("{}/budgets/{budget_id}/payees/{payee_id}", configuration.base_path, budget_id=crate::apis::urlencode(budget_id), payee_id=crate::apis::urlencode(payee_id));
87        let mut req_builder = client.patch(uri_str.as_str());
88
89        if let Some(ref user_agent) = configuration.user_agent {
90            req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
91        }
92        if let Some(ref token) = configuration.bearer_access_token {
93            req_builder = req_builder.bearer_auth(token.to_owned());
94        };
95        req_builder = req_builder.json(&data);
96
97        // send request
98        let req = req_builder.build()?;
99
100        Ok(client.execute(req)?.error_for_status()?.json()?)
101    }
102
103}