meegle/workitem_type/
api.rs1use super::types::*;
2use crate::client::{AuthType, Client};
3use crate::error::ApiResult;
4
5pub trait WorkItemTypeApi {
6 fn get_work_item_types(
9 &self,
10 request: GetWorkItemTypesRequest,
11 auth: AuthType,
12 ) -> impl std::future::Future<Output = ApiResult<GetWorkItemTypesResponse>> + Send;
13
14 fn get_work_item_type_config(
17 &self,
18 request: GetWorkItemTypeConfigRequest,
19 auth: AuthType,
20 ) -> impl std::future::Future<Output = ApiResult<GetWorkItemTypeConfigResponse>> + Send;
21
22 fn update_work_item_type_config(
25 &self,
26 request: UpdateWorkItemTypeConfigRequest,
27 auth: AuthType,
28 ) -> impl std::future::Future<Output = ApiResult<UpdateWorkItemTypeConfigResponse>> + Send;
29}
30
31impl WorkItemTypeApi for Client {
32 async fn get_work_item_types(
33 &self,
34 request: GetWorkItemTypesRequest,
35 auth: AuthType,
36 ) -> ApiResult<GetWorkItemTypesResponse> {
37 Ok(self
38 .get(&format!("{}/work_item/all-types", request.project_key), auth)
39 .await?)
40 }
41
42 async fn get_work_item_type_config(
43 &self,
44 request: GetWorkItemTypeConfigRequest,
45 auth: AuthType,
46 ) -> ApiResult<GetWorkItemTypeConfigResponse> {
47 Ok(self
48 .get(
49 &format!(
50 "{}/work_item/type/{}",
51 request.project_key, request.work_item_type_key
52 ),
53 auth,
54 )
55 .await?)
56 }
57
58 async fn update_work_item_type_config(
59 &self,
60 request: UpdateWorkItemTypeConfigRequest,
61 auth: AuthType,
62 ) -> ApiResult<UpdateWorkItemTypeConfigResponse> {
63 Ok(self
64 .put(
65 &format!(
66 "{}/work_item/type/{}",
67 request.project_key, request.work_item_type_key
68 ),
69 &request,
70 auth,
71 )
72 .await?)
73 }
74}