UNPKG

briareus

Version:

Briareus assists with Feature Branch deploys to ECS

65 lines (54 loc) 1.93 kB
'use strict' const express = require('express'); const async = require('async'); const _ = require('lodash'); const taskDefinitionValidator = require('../../taskDefinitionValidator'); const mw = require('../middleware'); const Variant = require('../variant'); const persistance = require('../persistance'); const errors = require('../errors'); module.exports = function (service) { let controller = express.Router(); controller.use(mw.auth(service)); function findDeployment(req, res, next) { persistance.getDeployment(req.params.deploymentId, (err, data) => { if (err) return next(err); if (!data) return next(new errors.NotFound()); req.deployment = data; next(); }); } /************************ * List Deployments ( Feature Branchs ) *************************/ controller.get('/', (req, res, next) => { res.status(200).json({ data: req.variant.deployments }); }); /************************ * Create Deployment *************************/ controller.post('/', [ mw.validate(service, 'deployment'), mw.validateDeploymentScopes(service), mw.validateTaskDefinition(service) ], (req, res, next) => { let ctx = req.context; let variant = new Variant(ctx, req.variant); // Acknowledge receipt of request. And do the deployment in the background res.status(200).json({}); variant.deploy(req.body, (err) => { // If error just log it. Because we have already sent a response to the client if (err) return ctx.log.error({ err }, 'Deployment failed'); ctx.log.info(`Deployment of Task Definition "${variant.data.activeDeployment.taskDefinition.arn}" complete`); }); }); /************************ * Get Deployment *************************/ controller.get('/:deploymentId', findDeployment, (req, res, next) => { res.status(200).json({ data: req.deployment }); }); return controller; };