diff --git a/surfsense_web/lib/apis/members-api.service.ts b/surfsense_web/lib/apis/members-api.service.ts index 53dc42304..51f66a7b0 100644 --- a/surfsense_web/lib/apis/members-api.service.ts +++ b/surfsense_web/lib/apis/members-api.service.ts @@ -3,6 +3,9 @@ import { type GetMembersRequest, getMembersRequest, getMembersResponse, + type UpdateMembershipRequest, + updateMembershipRequest, + updateMembershipResponse, } from "@/contracts/types/members.types"; class MembersApiService { @@ -16,6 +19,20 @@ class MembersApiService { 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();