contensis-management-api
Version:
Client for managing content using the Contensis Management API
80 lines (79 loc) • 2.97 kB
JavaScript
import { UrlBuilder } from 'contensis-core-api';
export class ProjectOperations {
httpClient;
contensisClient;
constructor(httpClient, contensisClient) {
this.httpClient = httpClient;
this.contensisClient = contensisClient;
}
get(id = null) {
let url = UrlBuilder.create('/api/management/projects/:projectId')
.addOptions(id, 'projectId')
.setParams(this.contensisClient.getParams())
.toUrl();
return this.contensisClient.ensureBearerToken().then(() => {
return this.httpClient.request(url, {
headers: this.contensisClient.getHeaders()
});
});
}
list() {
let url = UrlBuilder.create('/api/management/projects', {})
.setParams(this.contensisClient.getParams())
.toUrl();
return this.contensisClient.ensureBearerToken().then(() => {
return this.httpClient.request(url, {
headers: this.contensisClient.getHeaders()
});
});
}
create(project) {
if (!project) {
throw new Error('A valid project needs to be specified.');
}
let url = UrlBuilder.create('/api/management/projects', {})
.setParams(this.contensisClient.getParams())
.toUrl();
return this.contensisClient.ensureBearerToken().then(() => {
return this.httpClient.request(url, {
headers: this.contensisClient.getHeaders(),
method: 'POST',
body: JSON.stringify(project)
});
});
}
update(project) {
if (!project) {
throw new Error('A valid project needs to be specified.');
}
if (!project.id) {
throw new Error('A valid project id value needs to be specified.');
}
let url = UrlBuilder.create('/api/management/projects/:id', {})
.addOptions(project.id, 'id')
.setParams(this.contensisClient.getParams())
.toUrl();
return this.contensisClient.ensureBearerToken().then(() => {
return this.httpClient.request(url, {
headers: this.contensisClient.getHeaders(),
method: 'PUT',
body: JSON.stringify(project)
});
});
}
delete(id) {
if (!id) {
throw new Error('A valid id needs to be specified.');
}
let url = UrlBuilder.create('/api/management/projects/:id', {})
.addOptions(id, 'id')
.setParams(this.contensisClient.getParams())
.toUrl();
return this.contensisClient.ensureBearerToken().then(() => {
return this.httpClient.request(url, {
headers: this.contensisClient.getHeaders(),
method: 'DELETE'
});
});
}
}