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