UNPKG

@sethub/sdk

Version:

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

132 lines (131 loc) 4.62 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ProjectMembers = void 0; 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 }; } } exports.ProjectMembers = ProjectMembers;