mavensmate
Version:
Core APIs that drive MavensMate IDEs for Salesforce1/Force.com
58 lines (53 loc) • 1.55 kB
JavaScript
/**
* @file Controller for the deploy UI
* @author Joseph Ferraro <@joeferraro>
*/
'use strict';
var express = require('express');
var router = express.Router();
var requestStore = require('../lib/request-store');
var logger = require('winston');
var Deploy = require('../lib/services/deploy');
var querystring = require('querystring');
router.get('/new', function(req, res) {
if (!req.project) {
res.render('error', { error: 'Error: No project attached to this request.' });
} else {
var commandExecutor = req.app.get('commandExecutor');
var deployDelegate = new Deploy({
project: req.project
});
commandExecutor.execute({
project: req.project,
name: 'get-connections',
editor: req.editor
})
.then(function(response) {
res.render('deploy/index.html', {
connections: response,
namedDeployments: deployDelegate.getNamedDeployments(),
hasIndexedMetadata: req.project.hasIndexedMetadata(),
title: 'Deploy'
});
})
.catch(function(err) {
logger.error(err);
res.status(500).send({ error: err.message });
});
}
});
router.post('/', function(req, res) {
var commandExecutor = req.app.get('commandExecutor');
var request = commandExecutor.execute({
project: req.project,
name: 'deploy',
body: req.body,
editor: req.editor
})
var requestId = requestStore.add(request);
return res.send({
status: 'pending',
id: requestId
});
});
module.exports = router;