@sethub/sdk
Version:
<div align="center"> <h1> SetHub SDK </h1>
171 lines (170 loc) • 7.13 kB
JavaScript
;
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;