mirror of
https://github.com/MODSetter/SurfSense.git
synced 2026-06-30 21:59:46 +02:00
fix: update members API service to follow established patterns with safeParse and arrow functions
This commit is contained in:
parent
22f8d5bbbb
commit
d747f59ae9
1 changed files with 30 additions and 11 deletions
|
|
@ -1,38 +1,57 @@
|
||||||
import { baseApiService } from "./base-api.service";
|
|
||||||
import {
|
import {
|
||||||
type GetMembersRequest,
|
type GetMembersRequest,
|
||||||
|
type GetMembersResponse,
|
||||||
|
type UpdateMembershipRequest,
|
||||||
|
type UpdateMembershipResponse,
|
||||||
getMembersRequest,
|
getMembersRequest,
|
||||||
getMembersResponse,
|
getMembersResponse,
|
||||||
type UpdateMembershipRequest,
|
|
||||||
updateMembershipRequest,
|
updateMembershipRequest,
|
||||||
updateMembershipResponse,
|
updateMembershipResponse,
|
||||||
} from "@/contracts/types/members.types";
|
} from "@/contracts/types/members.types";
|
||||||
|
import { ValidationError } from "@/lib/error";
|
||||||
|
import { baseApiService } from "./base-api.service";
|
||||||
|
|
||||||
class MembersApiService {
|
class MembersApiService {
|
||||||
/**
|
/**
|
||||||
* Get members of a search space
|
* Get members of a search space
|
||||||
*/
|
*/
|
||||||
async getMembers(request: GetMembersRequest) {
|
getMembers = async (request: GetMembersRequest) => {
|
||||||
const parsedRequest = getMembersRequest.parse(request);
|
const parsedRequest = getMembersRequest.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(
|
return baseApiService.get(
|
||||||
`/searchspaces/${parsedRequest.search_space_id}/members`,
|
`/searchspaces/${parsedRequest.data.search_space_id}/members`,
|
||||||
getMembersResponse,
|
getMembersResponse,
|
||||||
);
|
);
|
||||||
}
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Update a member's role
|
* Update a member's role
|
||||||
*/
|
*/
|
||||||
async updateMember(request: UpdateMembershipRequest) {
|
updateMember = async (request: UpdateMembershipRequest) => {
|
||||||
const parsedRequest = updateMembershipRequest.parse(request);
|
const parsedRequest = updateMembershipRequest.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.put(
|
return baseApiService.put(
|
||||||
`/searchspaces/${parsedRequest.search_space_id}/members/${parsedRequest.membership_id}`,
|
`/searchspaces/${parsedRequest.data.search_space_id}/members/${parsedRequest.data.membership_id}`,
|
||||||
updateMembershipResponse,
|
updateMembershipResponse,
|
||||||
{
|
{
|
||||||
body: parsedRequest.data,
|
body: parsedRequest.data.data,
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
}
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
export const membersApiService = new MembersApiService();
|
export const membersApiService = new MembersApiService();
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue