UNPKG

contensis-management-api

Version:

Client for managing content using the Contensis Management API

80 lines (79 loc) 2.97 kB
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' }); }); } }