meegle/workitem_relation/
api.rs1use super::types::*;
2use crate::client::{AuthType, Client};
3use crate::error::ApiResult;
4
5pub trait WorkItemRelationApi {
6 fn get_work_item_relation_list(
9 &self,
10 request: GetWorkItemRelationListRequest,
11 auth: AuthType,
12 ) -> impl std::future::Future<Output = ApiResult<GetWorkItemRelationListResponse>> + Send;
13
14 fn create_work_item_relation(
17 &self,
18 request: CreateWorkItemRelationRequest,
19 auth: AuthType,
20 ) -> impl std::future::Future<Output = ApiResult<WorkItemRelationResponse>> + Send;
21
22 fn update_work_item_relation(
25 &self,
26 request: UpdateWorkItemRelationRequest,
27 auth: AuthType,
28 ) -> impl std::future::Future<Output = ApiResult<WorkItemRelationResponse>> + Send;
29
30 fn delete_work_item_relation(
33 &self,
34 request: DeleteWorkItemRelationRequest,
35 auth: AuthType,
36 ) -> impl std::future::Future<Output = ApiResult<WorkItemRelationResponse>> + Send;
37}
38
39impl WorkItemRelationApi for Client {
40 async fn get_work_item_relation_list(
41 &self,
42 request: GetWorkItemRelationListRequest,
43 auth: AuthType,
44 ) -> ApiResult<GetWorkItemRelationListResponse> {
45 Ok(self
46 .get(&format!("{}/work_item/relation", request.project_key), auth)
47 .await?)
48 }
49
50 async fn create_work_item_relation(
51 &self,
52 request: CreateWorkItemRelationRequest,
53 auth: AuthType,
54 ) -> ApiResult<WorkItemRelationResponse> {
55 Ok(self
56 .post("/work_item/relation/create", &request, auth)
57 .await?)
58 }
59
60 async fn update_work_item_relation(
61 &self,
62 request: UpdateWorkItemRelationRequest,
63 auth: AuthType,
64 ) -> ApiResult<WorkItemRelationResponse> {
65 Ok(self
66 .post("/work_item/relation/update", &request, auth)
67 .await?)
68 }
69
70 async fn delete_work_item_relation(
71 &self,
72 request: DeleteWorkItemRelationRequest,
73 auth: AuthType,
74 ) -> ApiResult<WorkItemRelationResponse> {
75 Ok(self
76 .delete_with_body("/work_item/relation/delete", &request, auth)
77 .await?)
78 }
79}