feat: leave workspace
This commit is contained in:
parent
44ced4036e
commit
117473d104
|
|
@ -585,6 +585,18 @@ impl Client {
|
|||
.into_data()
|
||||
}
|
||||
|
||||
#[instrument(level = "debug", skip_all, err)]
|
||||
pub async fn leave_workspace(&self, workspace_id: &str) -> Result<(), AppResponseError> {
|
||||
let url = format!("{}/api/workspace/{}/leave", self.base_url, workspace_id);
|
||||
let resp = self
|
||||
.http_client_with_auth(Method::POST, &url)
|
||||
.await?
|
||||
.send()
|
||||
.await?;
|
||||
log_request_id(&resp);
|
||||
AppResponse::<()>::from_response(resp).await?.into_error()
|
||||
}
|
||||
|
||||
#[instrument(level = "debug", skip_all, err)]
|
||||
pub async fn get_workspace_members<W: AsRef<str>>(
|
||||
&self,
|
||||
|
|
|
|||
|
|
@ -74,7 +74,7 @@ pub fn workspace_scope() -> Scope {
|
|||
.route(web::delete().to(delete_workspace_handler))
|
||||
)
|
||||
.service(web::resource("/{workspace_id}/open").route(web::put().to(open_workspace_handler)))
|
||||
.service(web::resource("/{workspace_id}/leave").route(web::put().to(leave_workspace_handler)))
|
||||
.service(web::resource("/{workspace_id}/leave").route(web::post().to(leave_workspace_handler)))
|
||||
.service(
|
||||
web::resource("/{workspace_id}/member")
|
||||
.route(web::get().to(get_workspace_members_handler))
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
use app_error::ErrorCode;
|
||||
use client_api::entity::CreateCollabParams;
|
||||
use client_api_test_util::{api_client_with_email, TestClient};
|
||||
use database_entity::dto::{AFAccessLevel, AFRole, QueryCollabMembers};
|
||||
use shared_entity::dto::workspace_dto::WorkspaceMemberInvitation;
|
||||
|
|
@ -361,4 +362,11 @@ async fn leave_workspace_test() {
|
|||
let c2 = TestClient::new_user().await;
|
||||
c1.add_workspace_member(&workspace_id_c1, &c2, AFRole::Member)
|
||||
.await;
|
||||
c2.api_client
|
||||
.leave_workspace(&workspace_id_c1)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let members = c1.get_workspace_members(&workspace_id_c1).await;
|
||||
assert_eq!(members.len(), 1);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue