UNPKG

@sethub/sdk

Version:

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

145 lines (144 loc) 5.26 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ProjectApplication = void 0; class ProjectApplication { constructor(httpClient) { this.httpClient = httpClient; } async list(input, options) { const { projectSlug, page, size, orderBy, sortBy, search, createdByMemberId } = 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; } if (createdByMemberId) { queryParams.created_by_member_id = createdByMemberId; } if (search) { queryParams.search = String(search).trim(); } const response = await this.httpClient.get(`/v1/projects/${projectSlug}/applications`, { abortSignal: options === null || options === void 0 ? void 0 : options.abortSignal, queryParams, }); 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, search: apiResponseBody.metadata.search, createdByMemberId: apiResponseBody.metadata.created_by_member_id, }, items: apiResponseBody.items.map(application => ({ id: application.id, name: application.name, updateSetsCount: application.update_sets_count, createdAt: new Date(application.created_at), createdByMember: { id: application.created_by_member.id, user: { id: application.created_by_member.user.id, name: application.created_by_member.user.name, email: application.created_by_member.user.email, } } })) }; return { data: parsedResponse, error: null }; } async getDetails(input, options) { const { projectSlug, id } = input; const response = await this.httpClient.get(`/v1/projects/${projectSlug}/applications/${id}`, { 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 = { id: apiResponseBody.id, name: apiResponseBody.name, createdAt: new Date(apiResponseBody.created_at), createdByMember: { id: apiResponseBody.created_by_member.id, user: { id: apiResponseBody.created_by_member.user.id, name: apiResponseBody.created_by_member.user.name, email: apiResponseBody.created_by_member.user.email, } } }; return { data: parsedResponse, error: null }; } async create(input, options) { const { name, projectSlug } = input; const response = await this.httpClient.post(`/v1/projects/${projectSlug}/applications`, { name }, { 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 update(input, options) { const { projectSlug, id, name } = input; const response = await this.httpClient.put(`/v1/projects/${projectSlug}/applications/${id}`, { name }, { 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}/applications/${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 }; } } exports.ProjectApplication = ProjectApplication;