UNPKG

clannad

Version:

data storage service with RESTful APIs.

153 lines (122 loc) 4.56 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _regenerator = require('babel-runtime/regenerator'); var _regenerator2 = _interopRequireDefault(_regenerator); var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator'); var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2); var _project = require('../models/project'); var _project2 = _interopRequireDefault(_project); var _resterror = require('../services/resterror'); var _resterror2 = _interopRequireDefault(_resterror); var _tools = require('../services/tools'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } exports.default = { add: function add(ctx) { var _this = this; return (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee() { var fields, project; return _regenerator2.default.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: fields = (0, _tools.getQuery)(ctx.req.body, ['name', 'domains']); project = new _project2.default(fields); _context.next = 4; return project.save(); case 4: ctx.body = { id: project._id }; case 5: case 'end': return _context.stop(); } } }, _callee, _this); }))(); }, del: function del(ctx) { var _this2 = this; return (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee2() { var projectName, project; return _regenerator2.default.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: projectName = ctx.params.projectName; _context2.next = 3; return _project2.default.findOne({ name: projectName }); case 3: project = _context2.sent; if (project) { _context2.next = 6; break; } throw new _resterror2.default(404, 'PROJECT_NOTFOUND_ERR', 'project ' + projectName + ' is not found'); case 6: if (!(project.tables && project.tables.length)) { _context2.next = 8; break; } throw new _resterror2.default(400, 'PROJECT_NOTEMPTY_ERR', 'tables array is not empty'); case 8: _context2.next = 10; return project.remove(); case 10: case 'end': return _context2.stop(); } } }, _callee2, _this2); }))(); }, edit: function edit(ctx) { var _this3 = this; return (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee3() { var fields, projectName; return _regenerator2.default.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: fields = (0, _tools.getQuery)(ctx.req.body, ['domains']); projectName = ctx.params.projectName; _context3.next = 4; return _project2.default.update({ name: projectName }, fields, { runValidators: true }); case 4: case 'end': return _context3.stop(); } } }, _callee3, _this3); }))(); }, detail: function detail(ctx) { var _this4 = this; return (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee4() { var projectName, project; return _regenerator2.default.wrap(function _callee4$(_context4) { while (1) { switch (_context4.prev = _context4.next) { case 0: projectName = ctx.params.projectName; _context4.next = 3; return _project2.default.findOne({ name: projectName }, '-__v -tables -tokens'); case 3: project = _context4.sent; if (project) { _context4.next = 6; break; } throw new _resterror2.default(404, 'PROJECT_NOTFOUND_ERR', 'project ' + projectName + ' is not found'); case 6: ctx.body = project; case 7: case 'end': return _context4.stop(); } } }, _callee4, _this4); }))(); } }; module.exports = exports['default'];