SurfSense/surfsense_web/lib/apis/members-api.service.ts

38 lines
970 B
TypeScript

import { baseApiService } from "./base-api.service";
import {
type GetMembersRequest,
getMembersRequest,
getMembersResponse,
type UpdateMembershipRequest,
updateMembershipRequest,
updateMembershipResponse,
} from "@/contracts/types/members.types";
class MembersApiService {
/**
* Get members of a search space
*/
async getMembers(request: GetMembersRequest) {
const parsedRequest = getMembersRequest.parse(request);
return baseApiService.get(
`/searchspaces/${parsedRequest.search_space_id}/members`,
getMembersResponse,
);
}
/**
* Update a member's role
*/
async updateMember(request: UpdateMembershipRequest) {
const parsedRequest = updateMembershipRequest.parse(request);
return baseApiService.put(
`/searchspaces/${parsedRequest.search_space_id}/members/${parsedRequest.membership_id}`,
updateMembershipResponse,
{
body: parsedRequest.data,
},
);
}
}
export const membersApiService = new MembersApiService();