UNPKG

@reactivehub/cli

Version:
83 lines (66 loc) 2.4 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _extends2 = require('babel-runtime/helpers/extends'); var _extends3 = _interopRequireDefault(_extends2); var _flat = require('flat'); var _api = require('../../services/api'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const databaseQuestion = { type: 'input', name: 'database', message: 'Enter the DATABASE name...' }; const tableQuestion = { type: 'input', name: 'table', message: 'Enter the TABLE name...' }; const hasConditionalQuestion = { type: 'confirm', name: 'hasConditional', message: 'Do your query has the WHERE condition?' }; const buildTemplateWithStatement = (answers = {}, eventModel = {}, doPayload = true) => { const { database, table, hasConditional } = answers; const template = { database, table }; if (hasConditional) { template.condition = [{ field: 'the-field-to-check', operator: 'mysql-operator (> , <, >=, etc..)', value: 'the-value-to-check' }]; } if (doPayload) template.payload = (0, _flat.flatten)(eventModel, { maxDepth: null, safe: false, delimiter: '_' }); return template; }; const INSERT = { name: 'INSERT', deploy: (action, eventInfo) => (0, _api.sendAction)(eventInfo, (0, _extends3.default)({ serviceAction: 'INSERT' }, action)), buildTemplate: (answers = {}, eventModel = {}) => (0, _extends3.default)({}, answers, { payload: (0, _flat.flatten)(eventModel, { safe: false, maxDepth: null, delimiter: '_' }) }), questions: () => [databaseQuestion, tableQuestion] }; const UPDATE = { name: 'UPDATE', deploy: (action, eventInfo) => (0, _api.sendAction)(eventInfo, (0, _extends3.default)({ serviceAction: 'UPDATE' }, action)), buildTemplate: (answers, eventModel) => buildTemplateWithStatement(answers, eventModel), questions: () => [databaseQuestion, tableQuestion, hasConditionalQuestion] }; const DELETE = { name: 'DELETE', deploy: (action, eventInfo) => (0, _api.sendAction)(eventInfo, (0, _extends3.default)({ serviceAction: 'DELETE' }, action)), buildTemplate: (answers, eventModel) => buildTemplateWithStatement(answers, eventModel, false), questions: () => [databaseQuestion, tableQuestion, hasConditionalQuestion] }; exports.default = { INSERT, UPDATE, DELETE }; //# sourceMappingURL=index.js.map