joyent-portal/packages/portal-api/lib/handlers.js

83 lines
2.0 KiB
JavaScript

'use strict';
// Deployments
exports.deploymentCreate = function (request, reply) {
const deploymentRoute = request.server.lookup('deploymentGet');
this.createDeployment(request.payload).then((deployment) => {
reply(deployment).created(deploymentRoute.path.replace('{deployment}', deployment.id));
}).catch((error) => {
reply(error);
});
};
exports.deploymentGet = function (request, reply) {
reply(this.getDeployment(request.params.deploymentId));
};
exports.deploymentUpdate = function (request, reply) {
const payload = request.payload;
payload.id = request.params.deploymentId;
reply(this.updateDeployment(payload));
};
exports.deploymentDelete = function (request, reply) {
reply(this.deleteDeployment(request.params.deploymentId));
};
exports.deploymentsGet = function (request, reply) {
reply(this.getDeployments());
};
// Datacenters
exports.datacentersGet = function (request, reply) {
reply(this.getDatacenters());
};
// Manifests
exports.manifestCreate = function (request, reply) {
const manifestRoute = request.server.lookup('manifestGet');
const deploymentId = request.params.deploymentId;
this.createManifest(deploymentId, request.payload).then((manifest) => {
reply(manifest).created(manifestRoute.path.replace('{deployment}', deploymentId).replace('{manifestId}', manifest.id));
}).catch((error) => {
reply(error);
});
};
exports.manifestGet = function (request, reply) {
reply(this.getManifest(request.params.manifestId));
};
// Activities and Metrics
exports.activitiesGet = function (request, reply) {
reply(this.getActivities(request.params.deploymentId));
};
exports.metricsGet = function (request, reply) {
reply(this.getMetrics(request.params.deploymentId));
};
// Services
exports.servicesGet = function (request, reply) {
reply(this.getServices(request.params.deploymentId));
};
exports.serviceUpdate = function (request, reply) {
const service = request.payload;
service.name = request.params.name;
reply(this.updateService(request.params.deploymentId, service));
};