UNPKG

@sethub/sdk

Version:

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

171 lines (170 loc) 7.13 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ProjectUpdateSets = void 0; class ProjectUpdateSets { constructor(httpClient) { this.httpClient = httpClient; } async create(input, options) { const { projectSlug, name, assigneeMemberId, application, batchId, promotedToQaAt, promotedToProdAt } = input; const parsedApplication = String(application || '').trim(); const response = await this.httpClient.post(`/v1/projects/${projectSlug}/updatesets`, { name, assignee_member_id: assigneeMemberId, application: parsedApplication || null, batch_id: batchId || null, promoted_to_qa_at: promotedToQaAt || null, promoted_to_prod_at: promotedToProdAt || null }, { 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, applicationId, batchId, assigneeMemberId, promotedToQaAt, promotedToProdAt, search, } = 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 (applicationId) { queryParams.application_id = applicationId; } if (batchId) { queryParams.batch_id = batchId; } if (assigneeMemberId) { queryParams.assignee_member_id = assigneeMemberId; } if (promotedToQaAt) { queryParams.promoted_to_qa_at = new Date(promotedToQaAt).toJSON(); } if (promotedToProdAt) { queryParams.promoted_to_prod_at = new Date(promotedToProdAt).toJSON(); } if (search) { queryParams.search = String(search).trim(); } const response = await this.httpClient.get(`/v1/projects/${projectSlug}/updatesets`, { 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, batchId: apiResponseBody.metadata.batch_id, applicationId: apiResponseBody.metadata.application_id, assigneeMemberId: apiResponseBody.metadata.assignee_member_id, promotedToQaAt: apiResponseBody.metadata.promoted_to_qa_at ? new Date(apiResponseBody.metadata.promoted_to_qa_at) : null, promotedToProdAt: apiResponseBody.metadata.promoted_to_prod_at ? new Date(apiResponseBody.metadata.promoted_to_prod_at) : null, search: apiResponseBody.metadata.search, }, items: apiResponseBody.items.map(updateSet => ({ id: updateSet.id, name: updateSet.name, batch: updateSet.batch || null, application: updateSet.application || null, assigneeMember: updateSet.assignee_member, createdByMember: updateSet.created_by_member, promotedToQaAt: updateSet.promoted_to_qa_at ? new Date(updateSet.promoted_to_qa_at) : null, promotedToProdAt: updateSet.promoted_to_prod_at ? new Date(updateSet.promoted_to_prod_at) : null, createdAt: new Date(updateSet.created_at), })) }; return { data: parsedResponse, error: null }; } async getDetails(input, options) { const { projectSlug, id } = input; const response = await this.httpClient.get(`/v1/projects/${projectSlug}/updatesets/${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, batch: apiResponseBody.batch || null, application: apiResponseBody.application || null, assigneeMember: apiResponseBody.assignee_member, createdByMember: apiResponseBody.created_by_member, promotedToQaAt: apiResponseBody.promoted_to_qa_at ? new Date(apiResponseBody.promoted_to_qa_at) : null, promotedToProdAt: apiResponseBody.promoted_to_prod_at ? new Date(apiResponseBody.promoted_to_prod_at) : null, createdAt: new Date(apiResponseBody.created_at), updatedAt: new Date(apiResponseBody.updated_at), }; return { data: parsedResponse, error: null }; } async update(input, options) { const { projectSlug, id, name, assigneeMemberId, application, batchId, promotedToQaAt, promotedToProdAt } = input; const parsedApplication = String(application || '').trim(); const response = await this.httpClient.put(`/v1/projects/${projectSlug}/updatesets/${id}`, { name, assignee_member_id: assigneeMemberId, application: parsedApplication || null, batch_id: batchId || null, promoted_to_qa_at: promotedToQaAt || null, promoted_to_prod_at: promotedToProdAt || null }, { 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}/updatesets/${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.ProjectUpdateSets = ProjectUpdateSets;