@sethub/sdk
Version:
<div align="center"> <h1> SetHub SDK </h1>
106 lines (105 loc) • 3.09 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Projects = void 0;
class Projects {
constructor(httpClient) {
this.httpClient = httpClient;
}
async create(input, options) {
const { name, description } = input;
const response = await this.httpClient.post('/v1/projects', {
name,
description
}, options);
if (!response.ok) {
return {
data: null,
error: response.body
};
}
return {
data: response.body,
error: null
};
}
async listMine(options) {
const response = await this.httpClient.get('/v1/projects/mine', options);
if (!response.ok) {
return {
data: null,
error: response.body
};
}
const apiResponseBody = response.body;
const parsedResponse = apiResponseBody.map(project => ({
slug: project.slug,
name: project.name,
description: project.description,
role: project.role,
updateSetsCount: project.update_sets_count,
}));
return {
data: parsedResponse,
error: null
};
}
async getDetails(input, options) {
var _a;
const { slug } = input;
const response = await this.httpClient.get(`/v1/projects/${slug}`, options);
if (!response.ok) {
return {
data: null,
error: response.body
};
}
const apiResponseBody = response.body;
const parsedResponse = {
slug: apiResponseBody.slug,
name: apiResponseBody.name,
description: (_a = apiResponseBody.description) !== null && _a !== void 0 ? _a : null,
createdAt: new Date(apiResponseBody.created_at),
owner: {
id: apiResponseBody.owner.id,
name: apiResponseBody.owner.name,
email: apiResponseBody.owner.email,
}
};
return {
data: parsedResponse,
error: null
};
}
async update(input, options) {
const { slug, name, description } = input;
const response = await this.httpClient.put(`/v1/projects/${slug}`, {
name,
description
}, options);
if (!response.ok) {
return {
data: null,
error: response.body
};
}
return {
data: response.body,
error: null
};
}
async delete(input, options) {
const { slug } = input;
const response = await this.httpClient.delete(`/v1/projects/${slug}`, options);
if (!response.ok) {
return {
data: null,
error: response.body
};
}
return {
data: response.body,
error: null
};
}
}
exports.Projects = Projects;