feat: add getMyAccess method to members API service

This commit is contained in:
CREDO23 2025-12-16 14:29:17 +00:00
parent 1d153f4f33
commit 52c3b5cc7e

View file

@ -7,6 +7,8 @@ import {
type DeleteMembershipResponse,
type LeaveSearchSpaceRequest,
type LeaveSearchSpaceResponse,
type GetMyAccessRequest,
type GetMyAccessResponse,
getMembersRequest,
getMembersResponse,
updateMembershipRequest,
@ -15,6 +17,8 @@ import {
deleteMembershipResponse,
leaveSearchSpaceRequest,
leaveSearchSpaceResponse,
getMyAccessRequest,
getMyAccessResponse,
} from "@/contracts/types/members.types";
import { ValidationError } from "@/lib/error";
import { baseApiService } from "./base-api.service";
@ -98,6 +102,25 @@ class MembersApiService {
leaveSearchSpaceResponse,
);
};
/**
* Get current user's access information for a search space
*/
getMyAccess = async (request: GetMyAccessRequest) => {
const parsedRequest = getMyAccessRequest.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.get(
`/searchspaces/${parsedRequest.data.search_space_id}/my-access`,
getMyAccessResponse,
);
};
}
export const membersApiService = new MembersApiService();