feat: add leaveSearchSpace method to members API service

This commit is contained in:
CREDO23 2025-12-16 14:20:59 +00:00
parent eb38a02775
commit 1d153f4f33

View file

@ -5,12 +5,16 @@ import {
type UpdateMembershipResponse,
type DeleteMembershipRequest,
type DeleteMembershipResponse,
type LeaveSearchSpaceRequest,
type LeaveSearchSpaceResponse,
getMembersRequest,
getMembersResponse,
updateMembershipRequest,
updateMembershipResponse,
deleteMembershipRequest,
deleteMembershipResponse,
leaveSearchSpaceRequest,
leaveSearchSpaceResponse,
} from "@/contracts/types/members.types";
import { ValidationError } from "@/lib/error";
import { baseApiService } from "./base-api.service";
@ -75,6 +79,25 @@ class MembersApiService {
deleteMembershipResponse,
);
};
/**
* Leave a search space (remove self)
*/
leaveSearchSpace = async (request: LeaveSearchSpaceRequest) => {
const parsedRequest = leaveSearchSpaceRequest.safeParse(request);
if (!parsedRequest.success) {
console.error("Invalid request:", parsedRequest.error);
const errorMessage = parsedRequest.error.errors.map((err) => err.message).join(", ");
throw new ValidationError(`Invalid request: ${errorMessage}`);
}
return baseApiService.delete(
`/searchspaces/${parsedRequest.data.search_space_id}/members/me`,
leaveSearchSpaceResponse,
);
};
}
export const membersApiService = new MembersApiService();