1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
use crate::Client;
use crate::ClientResult;
pub struct PaySchedules {
pub client: Client,
}
impl PaySchedules {
#[doc(hidden)]
pub fn new(client: Client) -> Self {
PaySchedules { client }
}
/**
* Get the pay schedules for a company.
*
* This function performs a `GET` to the `/v1/companies/{company_id}/pay_schedules` endpoint.
*
* The pay schedule object in Gusto captures the details of when employees work and when they should be paid. A company can have multiple pay schedules.
*/
pub async fn get_company(
&self,
company_id: &str,
) -> ClientResult<crate::Response<Vec<crate::types::PaySchedule>>> {
let url = self.client.url(
&format!(
"/v1/companies/{}/pay_schedules",
crate::progenitor_support::encode_path(company_id),
),
None,
);
self.client
.get(
&url,
crate::Message {
body: None,
content_type: None,
},
)
.await
}
/**
* Get the pay schedules for a company.
*
* This function performs a `GET` to the `/v1/companies/{company_id}/pay_schedules` endpoint.
*
* As opposed to `get_company`, this function returns all the pages of the request at once.
*
* The pay schedule object in Gusto captures the details of when employees work and when they should be paid. A company can have multiple pay schedules.
*/
pub async fn get_all_company(
&self,
company_id: &str,
) -> ClientResult<crate::Response<Vec<crate::types::PaySchedule>>> {
let url = self.client.url(
&format!(
"/v1/companies/{}/pay_schedules",
crate::progenitor_support::encode_path(company_id),
),
None,
);
self.client
.get_all_pages(
&url,
crate::Message {
body: None,
content_type: None,
},
)
.await
}
/**
* Get a pay schedule.
*
* This function performs a `GET` to the `/v1/companies/{company_id_or_uuid}/pay_schedules/{pay_schedule_id_or_uuid}` endpoint.
*
* The pay schedule object in Gusto captures the details of when employees work and when they should be paid. A company can have multiple pay schedules.
*/
pub async fn get_company_schedule(
&self,
company_id_or_uuid: &str,
pay_schedule_id_or_uuid: &str,
) -> ClientResult<crate::Response<crate::types::PaySchedule>> {
let url = self.client.url(
&format!(
"/v1/companies/{}/pay_schedules/{}",
crate::progenitor_support::encode_path(company_id_or_uuid),
crate::progenitor_support::encode_path(pay_schedule_id_or_uuid),
),
None,
);
self.client
.get(
&url,
crate::Message {
body: None,
content_type: None,
},
)
.await
}
/**
* Update a pay schedule.
*
* This function performs a `PUT` to the `/v1/companies/{company_id_or_uuid}/pay_schedules/{pay_schedule_id_or_uuid}` endpoint.
*
* Updates a pay schedule.
*
* This endpoint is in beta. Please contact developer-gws@gusto.com if you’d like to have more information and use it for production. Note, this may require you to enter a different agreement with Gusto
*/
pub async fn put_company_schedule(
&self,
company_id_or_uuid: &str,
pay_schedule_id_or_uuid: &str,
body: &crate::types::PutCompanyPaySchedulesScheduleRequest,
) -> ClientResult<crate::Response<crate::types::PaySchedule>> {
let url = self.client.url(
&format!(
"/v1/companies/{}/pay_schedules/{}",
crate::progenitor_support::encode_path(company_id_or_uuid),
crate::progenitor_support::encode_path(pay_schedule_id_or_uuid),
),
None,
);
self.client
.put(
&url,
crate::Message {
body: Some(reqwest::Body::from(serde_json::to_vec(body)?)),
content_type: Some("application/json".to_string()),
},
)
.await
}
}