UNPKG

@sethub/sdk

Version:

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

137 lines (136 loc) 4.91 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ProjectInvitations = void 0; class ProjectInvitations { constructor(httpClient) { this.httpClient = httpClient; } async create(input, options) { const { projectSlug, email, role } = input; const response = await this.httpClient.post(`/v1/projects/${projectSlug}/invitations`, { email, 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 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}/invitations`, { 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(invitation => ({ id: invitation.id, email: invitation.email, role: invitation.role, status: invitation.status, isExpired: invitation.is_expired, createdAt: new Date(invitation.created_at), invitedByMember: { id: invitation.invited_by_member.id, user: { id: invitation.invited_by_member.user.id, name: invitation.invited_by_member.user.name, email: invitation.invited_by_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}/invitations/${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 delete(input, options) { const { projectSlug, id } = input; const response = await this.httpClient.delete(`/v1/projects/${projectSlug}/invitations/${id}`, { 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 accept(input, options) { const { projectSlug, id } = input; const response = await this.httpClient.post(`/v1/projects/${projectSlug}/invitations/${id}/accept`, 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 reject(input, options) { const { projectSlug, id } = input; const response = await this.httpClient.post(`/v1/projects/${projectSlug}/invitations/${id}/reject`, 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 }; } } exports.ProjectInvitations = ProjectInvitations;