@sethub/sdk
Version:
<div align="center"> <h1> SetHub SDK </h1>
132 lines (131 loc) • 4.62 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ProjectMembers = void 0;
class ProjectMembers {
constructor(httpClient) {
this.httpClient = httpClient;
}
async list(input, options) {
const { projectSlug, page, size, orderBy, sortBy, } = 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;
}
const response = await this.httpClient.get(`/v1/projects/${projectSlug}/members`, {
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,
},
items: apiResponseBody.items.map(member => ({
id: member.id,
role: member.role,
inactivatedAt: member.inactivated_at ? new Date(member.inactivated_at) : null,
createdAt: new Date(member.created_at),
user: {
id: member.user.id,
name: member.user.name,
email: member.user.email,
}
}))
};
return {
data: parsedResponse,
error: null
};
}
async updateRole(input, options) {
const { projectSlug, id, role } = input;
const response = await this.httpClient.patch(`/v1/projects/${projectSlug}/members/${id}/role`, { role }, { 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 activateAccess(input, options) {
const { projectSlug, id } = input;
const response = await this.httpClient.post(`/v1/projects/${projectSlug}/members/${id}/activate`, undefined, { 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 deactivateAccess(input, options) {
const { projectSlug, id } = input;
const response = await this.httpClient.post(`/v1/projects/${projectSlug}/members/${id}/deactivate`, undefined, { 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 listEditors(input, options) {
const { projectSlug } = input;
const response = await this.httpClient.get(`/v1/projects/${projectSlug}/members/editors`, {
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 = apiResponseBody.map(member => ({
id: member.id,
role: member.role,
inactivatedAt: member.inactivated_at ? new Date(member.inactivated_at) : null,
createdAt: new Date(member.created_at),
user: {
id: member.user.id,
name: member.user.name,
email: member.user.email,
}
}));
return {
data: parsedResponse,
error: null
};
}
}
exports.ProjectMembers = ProjectMembers;