relay_knowledge/application/
code_repository_set_lifecycle.rs1use crate::{
2 api::{ApiMetadata, CodeRepositorySetRemoveResponse, RequestContext},
3 domain::CodeRepositorySetRemoveMemberRequest,
4};
5
6use super::{
7 RelayKnowledgeService,
8 code_repository_set_service::{required_set_status, storage_api_error},
9};
10
11impl RelayKnowledgeService {
12 pub async fn remove_code_repository_set_member(
14 &self,
15 request: CodeRepositorySetRemoveMemberRequest,
16 context: RequestContext,
17 ) -> Result<CodeRepositorySetRemoveResponse, crate::api::ApiError> {
18 let store = self.store().await.map_err(storage_api_error)?;
19 let member = store
20 .remove_code_repository_set_member(
21 request.set_alias.clone(),
22 request.repository_alias.clone(),
23 )
24 .await
25 .map_err(storage_api_error)?;
26 let status = required_set_status(&store, &request.set_alias).await?;
27 let graph_version = store
28 .current_graph_version()
29 .await
30 .map_err(storage_api_error)?;
31
32 Ok(CodeRepositorySetRemoveResponse {
33 metadata: ApiMetadata::graph_only(&context, graph_version),
34 request,
35 member,
36 status,
37 })
38 }
39}