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