relay_knowledge/application/code_repository/repository_set/lifecycle/
mod.rs1use crate::{
4 api::{ApiMetadata, CodeRepositorySetRemoveResponse, RequestContext},
5 domain::CodeRepositorySetRemoveMemberRequest,
6};
7
8use super::{errors::storage_api_error, status::required_set_status};
9use crate::application::service::RelayKnowledgeService;
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}