UNPKG

@sethub/sdk

Version:

<div align="center"> <h1> SetHub SDK </h1>

128 lines (127 loc) 4.48 kB
export class ProjectMembers { constructor(httpClient) { this.httpClient = httpClient; } async list(input, options) { const { projectSlug, page, size, orderBy, sortBy, } = input; const queryParams = {}; if (page) { queryParams.page = page; } if (size) { queryParams.size = size; } if (orderBy) { queryParams.order_by = orderBy; } if (sortBy) { queryParams.sort_by = sortBy; } const response = await this.httpClient.get(`/v1/projects/${projectSlug}/members`, { queryParams, abortSignal: options === null || options === void 0 ? void 0 : options.abortSignal }); if (!response.ok) { return { data: null, error: response.body }; } const apiResponseBody = response.body; const parsedResponse = { metadata: { page: apiResponseBody.metadata.page, pages: apiResponseBody.metadata.pages, size: apiResponseBody.metadata.size, orderBy: apiResponseBody.metadata.order_by, sortBy: apiResponseBody.metadata.sort_by, totalCount: apiResponseBody.metadata.total_count, }, items: apiResponseBody.items.map(member => ({ id: member.id, role: member.role, inactivatedAt: member.inactivated_at ? new Date(member.inactivated_at) : null, createdAt: new Date(member.created_at), user: { id: member.user.id, name: member.user.name, email: member.user.email, } })) }; return { data: parsedResponse, error: null }; } async updateRole(input, options) { const { projectSlug, id, role } = input; const response = await this.httpClient.patch(`/v1/projects/${projectSlug}/members/${id}/role`, { role }, { abortSignal: options === null || options === void 0 ? void 0 : options.abortSignal }); if (!response.ok) { return { data: null, error: response.body }; } return { data: response.body, error: null }; } async activateAccess(input, options) { const { projectSlug, id } = input; const response = await this.httpClient.post(`/v1/projects/${projectSlug}/members/${id}/activate`, undefined, { abortSignal: options === null || options === void 0 ? void 0 : options.abortSignal }); if (!response.ok) { return { data: null, error: response.body }; } return { data: response.body, error: null }; } async deactivateAccess(input, options) { const { projectSlug, id } = input; const response = await this.httpClient.post(`/v1/projects/${projectSlug}/members/${id}/deactivate`, undefined, { abortSignal: options === null || options === void 0 ? void 0 : options.abortSignal }); if (!response.ok) { return { data: null, error: response.body }; } return { data: response.body, error: null }; } async listEditors(input, options) { const { projectSlug } = input; const response = await this.httpClient.get(`/v1/projects/${projectSlug}/members/editors`, { abortSignal: options === null || options === void 0 ? void 0 : options.abortSignal }); if (!response.ok) { return { data: null, error: response.body }; } const apiResponseBody = response.body; const parsedResponse = apiResponseBody.map(member => ({ id: member.id, role: member.role, inactivatedAt: member.inactivated_at ? new Date(member.inactivated_at) : null, createdAt: new Date(member.created_at), user: { id: member.user.id, name: member.user.name, email: member.user.email, } })); return { data: parsedResponse, error: null }; } }