Built motion from commit 87cd5f02.|2.5.48
[motion2.git] / server / api / automation / automation.controller.js
1 // *************************************************************************
2 // *                                                                       *
3 // * xCALLY Motion -  The Omnichannel Contact Center                       *
4 // * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
5 // *                                                                       *
6 // *************************************************************************
7 // *                                                                       *
8 // * Email: info@xcally.com                                                *
9 // * Website: https://www.xcally.com                                       *
10 // *                                                                       *
11 // *************************************************************************
12 // *                                                                       *
13 // * The SOFTWARE PRODUCT is protected by copyright laws and international *
14 // * copyright treaties, as well as other intellectual property laws and   *
15 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                         *
16 // *                                                                       *
17 // *************************************************************************
18 var _0x5477=['api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','offset','limit','undefined','count','Content-Range','apply','reject','save','update','then','destroy','sendStatus','error','name','send','index','map','Automation','rawAttributes','fieldName','type','key','model','query','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filters','filter','merge','options','includeAll','include','rows','show','keys','find','catch','body','params','addConditions','omit','getConditions','findOne','Condition','addActions','ids','getActions','Action','eml-format','rimraf','zip-dir','fast-json-patch','bluebird','util','path','sox','to-csv','fs-extra','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger'];(function(_0x9d77b5,_0x4fcdb3){var _0x4b26d0=function(_0xcb79d4){while(--_0xcb79d4){_0x9d77b5['push'](_0x9d77b5['shift']());}};_0x4b26d0(++_0x4fcdb3);}(_0x5477,0x13c));var _0x7547=function(_0x3bf83f,_0x181cac){_0x3bf83f=_0x3bf83f-0x0;var _0x22c4a9=_0x5477[_0x3bf83f];return _0x22c4a9;};'use strict';var emlformat=require(_0x7547('0x0'));var rimraf=require(_0x7547('0x1'));var zipdir=require(_0x7547('0x2'));var jsonpatch=require(_0x7547('0x3'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x7547('0x4'));var Mustache=require('mustache');var util=require(_0x7547('0x5'));var path=require(_0x7547('0x6'));var sox=require(_0x7547('0x7'));var csv=require(_0x7547('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x7547('0x9'));var _=require('lodash');var squel=require(_0x7547('0xa'));var crypto=require(_0x7547('0xb'));var jsforce=require(_0x7547('0xc'));var deskjs=require(_0x7547('0xd'));var toCsv=require(_0x7547('0x8'));var querystring=require(_0x7547('0xe'));var Papa=require(_0x7547('0xf'));var Redis=require(_0x7547('0x10'));var authService=require(_0x7547('0x11'));var qs=require(_0x7547('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x7547('0x13'))(_0x7547('0x14'));var utils=require(_0x7547('0x15'));var config=require(_0x7547('0x16'));var licenseUtil=require(_0x7547('0x17'));var db=require(_0x7547('0x18'))['db'];function respondWithStatusCode(_0x55561c,_0x2b68ba){_0x2b68ba=_0x2b68ba||0xcc;return function(_0xd22d8c){if(_0xd22d8c){return _0x55561c['sendStatus'](_0x2b68ba);}return _0x55561c[_0x7547('0x19')](_0x2b68ba)[_0x7547('0x1a')]();};}function respondWithResult(_0x4366c0,_0x51ce83){_0x51ce83=_0x51ce83||0xc8;return function(_0x48ec07){if(_0x48ec07){return _0x4366c0['status'](_0x51ce83)[_0x7547('0x1b')](_0x48ec07);}};}function respondWithFilteredResult(_0x5acf00,_0x4258f9){return function(_0x3eea33){if(_0x3eea33){var _0x42d62a=typeof _0x4258f9[_0x7547('0x1c')]==='undefined'&&typeof _0x4258f9[_0x7547('0x1d')]===_0x7547('0x1e');var _0x206fb6=_0x3eea33[_0x7547('0x1f')];var _0x442b06=_0x42d62a?0x0:_0x4258f9[_0x7547('0x1c')];var _0x4d14af=_0x42d62a?_0x3eea33[_0x7547('0x1f')]:_0x4258f9[_0x7547('0x1c')]+_0x4258f9['limit'];var _0x5e0bb0;if(_0x4d14af>=_0x206fb6){_0x4d14af=_0x206fb6;_0x5e0bb0=0xc8;}else{_0x5e0bb0=0xce;}_0x5acf00[_0x7547('0x19')](_0x5e0bb0);return _0x5acf00['set'](_0x7547('0x20'),_0x442b06+'-'+_0x4d14af+'/'+_0x206fb6)['json'](_0x3eea33);}return null;};}function patchUpdates(_0xdb7b8e){return function(_0x34370d){try{jsonpatch[_0x7547('0x21')](_0x34370d,_0xdb7b8e,!![]);}catch(_0x3b453a){return BPromise[_0x7547('0x22')](_0x3b453a);}return _0x34370d[_0x7547('0x23')]();};}function saveUpdates(_0x5eea39,_0x5858aa){return function(_0x7b962e){if(_0x7b962e){return _0x7b962e[_0x7547('0x24')](_0x5eea39)[_0x7547('0x25')](function(_0x4b0d87){return _0x4b0d87;});}return null;};}function removeEntity(_0x44a5ab,_0x2209a0){return function(_0xeae9f1){if(_0xeae9f1){return _0xeae9f1[_0x7547('0x26')]()[_0x7547('0x25')](function(){_0x44a5ab['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x12e30e,_0xa3a399){return function(_0x2a5c8f){if(!_0x2a5c8f){_0x12e30e[_0x7547('0x27')](0x194);}return _0x2a5c8f;};}function handleError(_0x3ed214,_0x1aba1c){_0x1aba1c=_0x1aba1c||0x1f4;return function(_0xf01f70){logger[_0x7547('0x28')](_0xf01f70['stack']);if(_0xf01f70[_0x7547('0x29')]){delete _0xf01f70['name'];}_0x3ed214[_0x7547('0x19')](_0x1aba1c)[_0x7547('0x2a')](_0xf01f70);};}exports[_0x7547('0x2b')]=function(_0x4a7748,_0x163a1a){var _0x59b74e={},_0x3e1c67={},_0x3ee1e5={'count':0x0,'rows':[]};var _0x181c79=_[_0x7547('0x2c')](db[_0x7547('0x2d')][_0x7547('0x2e')],function(_0x8976df){return{'name':_0x8976df[_0x7547('0x2f')],'type':_0x8976df[_0x7547('0x30')][_0x7547('0x31')]};});_0x3e1c67[_0x7547('0x32')]=_[_0x7547('0x2c')](_0x181c79,_0x7547('0x29'));_0x3e1c67[_0x7547('0x33')]=_['keys'](_0x4a7748['query']);_0x3e1c67['filters']=_[_0x7547('0x34')](_0x3e1c67[_0x7547('0x32')],_0x3e1c67['query']);_0x59b74e[_0x7547('0x35')]=_[_0x7547('0x34')](_0x3e1c67[_0x7547('0x32')],qs[_0x7547('0x36')](_0x4a7748[_0x7547('0x33')][_0x7547('0x36')]));_0x59b74e[_0x7547('0x35')]=_0x59b74e['attributes'][_0x7547('0x37')]?_0x59b74e['attributes']:_0x3e1c67['model'];if(!_0x4a7748[_0x7547('0x33')][_0x7547('0x38')](_0x7547('0x39'))){_0x59b74e[_0x7547('0x1d')]=qs[_0x7547('0x1d')](_0x4a7748[_0x7547('0x33')]['limit']);_0x59b74e['offset']=qs[_0x7547('0x1c')](_0x4a7748['query']['offset']);}_0x59b74e[_0x7547('0x3a')]=qs[_0x7547('0x3b')](_0x4a7748['query'][_0x7547('0x3b')]);_0x59b74e[_0x7547('0x3c')]=qs['filters'](_[_0x7547('0x3d')](_0x4a7748[_0x7547('0x33')],_0x3e1c67[_0x7547('0x3e')]),_0x181c79);if(_0x4a7748['query'][_0x7547('0x3f')]){_0x59b74e[_0x7547('0x3c')]=_[_0x7547('0x40')](_0x59b74e[_0x7547('0x3c')],{'$or':_[_0x7547('0x2c')](_0x181c79,function(_0x183958){if(_0x183958['type']!=='VIRTUAL'){var _0x4af7d7={};_0x4af7d7[_0x183958[_0x7547('0x29')]]={'$like':'%'+_0x4a7748[_0x7547('0x33')]['filter']+'%'};return _0x4af7d7;}})});}_0x59b74e=_[_0x7547('0x40')]({},_0x59b74e,_0x4a7748[_0x7547('0x41')]);var _0x918b63={'where':_0x59b74e[_0x7547('0x3c')]};return db['Automation'][_0x7547('0x1f')](_0x918b63)[_0x7547('0x25')](function(_0x2def7e){_0x3ee1e5[_0x7547('0x1f')]=_0x2def7e;if(_0x4a7748[_0x7547('0x33')][_0x7547('0x42')]){_0x59b74e[_0x7547('0x43')]=[{'all':!![]}];}return db[_0x7547('0x2d')]['findAll'](_0x59b74e);})[_0x7547('0x25')](function(_0x857779){_0x3ee1e5[_0x7547('0x44')]=_0x857779;return _0x3ee1e5;})['then'](respondWithFilteredResult(_0x163a1a,_0x59b74e))['catch'](handleError(_0x163a1a,null));};exports[_0x7547('0x45')]=function(_0x3fbf3f,_0x19d798){var _0x23ba54={'raw':![],'where':{'id':_0x3fbf3f['params']['id']}},_0x3c88d8={};_0x3c88d8[_0x7547('0x32')]=_[_0x7547('0x46')](db[_0x7547('0x2d')][_0x7547('0x2e')]);_0x3c88d8[_0x7547('0x33')]=_[_0x7547('0x46')](_0x3fbf3f['query']);_0x3c88d8['filters']=_[_0x7547('0x34')](_0x3c88d8[_0x7547('0x32')],_0x3c88d8[_0x7547('0x33')]);_0x23ba54['attributes']=_[_0x7547('0x34')](_0x3c88d8[_0x7547('0x32')],qs[_0x7547('0x36')](_0x3fbf3f[_0x7547('0x33')]['fields']));_0x23ba54['attributes']=_0x23ba54[_0x7547('0x35')][_0x7547('0x37')]?_0x23ba54[_0x7547('0x35')]:_0x3c88d8['model'];if(_0x3fbf3f['query'][_0x7547('0x42')]){_0x23ba54['include']=[{'all':!![]}];}_0x23ba54=_[_0x7547('0x40')]({},_0x23ba54,_0x3fbf3f['options']);return db[_0x7547('0x2d')][_0x7547('0x47')](_0x23ba54)[_0x7547('0x25')](handleEntityNotFound(_0x19d798,null))[_0x7547('0x25')](respondWithResult(_0x19d798,null))[_0x7547('0x48')](handleError(_0x19d798,null));};exports['create']=function(_0x42a435,_0x85711d){return db[_0x7547('0x2d')]['create'](_0x42a435[_0x7547('0x49')],{})[_0x7547('0x25')](respondWithResult(_0x85711d,0xc9))[_0x7547('0x48')](handleError(_0x85711d,null));};exports[_0x7547('0x24')]=function(_0x4b0203,_0x218e67){if(_0x4b0203[_0x7547('0x49')]['id']){delete _0x4b0203[_0x7547('0x49')]['id'];}return db[_0x7547('0x2d')]['find']({'where':{'id':_0x4b0203[_0x7547('0x4a')]['id']}})['then'](handleEntityNotFound(_0x218e67,null))[_0x7547('0x25')](saveUpdates(_0x4b0203[_0x7547('0x49')],null))[_0x7547('0x25')](respondWithResult(_0x218e67,null))['catch'](handleError(_0x218e67,null));};exports[_0x7547('0x26')]=function(_0x32fa56,_0x1875c7){return db[_0x7547('0x2d')][_0x7547('0x47')]({'where':{'id':_0x32fa56[_0x7547('0x4a')]['id']}})[_0x7547('0x25')](handleEntityNotFound(_0x1875c7,null))[_0x7547('0x25')](removeEntity(_0x1875c7,null))[_0x7547('0x48')](handleError(_0x1875c7,null));};exports[_0x7547('0x4b')]=function(_0x7c7673,_0x4c2347,_0x28807a){return db['Condition'][_0x7547('0x47')]({'where':{'id':_0x7c7673[_0x7547('0x4a')]['id']}})[_0x7547('0x25')](handleEntityNotFound(_0x4c2347,null))[_0x7547('0x25')](function(_0x2fa0bd){if(_0x2fa0bd){return _0x2fa0bd[_0x7547('0x4b')](_0x7c7673[_0x7547('0x49')]['ids'],_[_0x7547('0x4c')](_0x7c7673[_0x7547('0x49')],['ids','id'])||{});}})[_0x7547('0x25')](respondWithResult(_0x4c2347,null))[_0x7547('0x48')](handleError(_0x4c2347,null));};exports[_0x7547('0x4d')]=function(_0x472e30,_0x10874c,_0x12f221){var _0x2ae151={};var _0x282c96={};var _0x54e2e5;var _0x9c7c6c;return db['Automation'][_0x7547('0x4e')]({'where':{'id':_0x472e30[_0x7547('0x4a')]['id']}})['then'](handleEntityNotFound(_0x10874c,null))[_0x7547('0x25')](function(_0x1259ca){if(_0x1259ca){_0x54e2e5=_0x1259ca;_0x282c96[_0x7547('0x32')]=_['keys'](db[_0x7547('0x4f')][_0x7547('0x2e')]);_0x282c96[_0x7547('0x33')]=_[_0x7547('0x46')](_0x472e30[_0x7547('0x33')]);_0x282c96[_0x7547('0x3e')]=_[_0x7547('0x34')](_0x282c96[_0x7547('0x32')],_0x282c96[_0x7547('0x33')]);_0x2ae151['attributes']=_[_0x7547('0x34')](_0x282c96['model'],qs[_0x7547('0x36')](_0x472e30['query'][_0x7547('0x36')]));_0x2ae151[_0x7547('0x35')]=_0x2ae151[_0x7547('0x35')][_0x7547('0x37')]?_0x2ae151[_0x7547('0x35')]:_0x282c96[_0x7547('0x32')];_0x2ae151[_0x7547('0x3a')]=qs[_0x7547('0x3b')](_0x472e30['query'][_0x7547('0x3b')]);_0x2ae151[_0x7547('0x3c')]=qs[_0x7547('0x3e')](_['pick'](_0x472e30[_0x7547('0x33')],_0x282c96[_0x7547('0x3e')]));if(_0x472e30[_0x7547('0x33')]['filter']){_0x2ae151[_0x7547('0x3c')]=_[_0x7547('0x40')](_0x2ae151[_0x7547('0x3c')],{'$or':_[_0x7547('0x2c')](_0x2ae151['attributes'],function(_0x301497){var _0xf36bee={};_0xf36bee[_0x301497]={'$like':'%'+_0x472e30[_0x7547('0x33')][_0x7547('0x3f')]+'%'};return _0xf36bee;})});}_0x2ae151=_[_0x7547('0x40')]({},_0x2ae151,_0x472e30[_0x7547('0x41')]);return _0x54e2e5[_0x7547('0x4d')](_0x2ae151);}})['then'](function(_0x139603){if(_0x139603){_0x9c7c6c=_0x139603[_0x7547('0x37')];if(!_0x472e30[_0x7547('0x33')][_0x7547('0x38')]('nolimit')){_0x2ae151['limit']=qs[_0x7547('0x1d')](_0x472e30['query']['limit']);_0x2ae151['offset']=qs[_0x7547('0x1c')](_0x472e30[_0x7547('0x33')][_0x7547('0x1c')]);}return _0x54e2e5[_0x7547('0x4d')](_0x2ae151);}})['then'](function(_0xcb0fc9){if(_0xcb0fc9){return _0xcb0fc9?{'count':_0x9c7c6c,'rows':_0xcb0fc9}:null;}})[_0x7547('0x25')](respondWithResult(_0x10874c,null))['catch'](handleError(_0x10874c,null));};exports[_0x7547('0x50')]=function(_0x5c1065,_0x229f99,_0x3c1d05){return db['Action'][_0x7547('0x47')]({'where':{'id':_0x5c1065[_0x7547('0x4a')]['id']}})['then'](handleEntityNotFound(_0x229f99,null))[_0x7547('0x25')](function(_0x2869b6){if(_0x2869b6){return _0x2869b6[_0x7547('0x50')](_0x5c1065[_0x7547('0x49')][_0x7547('0x51')],_['omit'](_0x5c1065[_0x7547('0x49')],[_0x7547('0x51'),'id'])||{});}})['then'](respondWithResult(_0x229f99,null))[_0x7547('0x48')](handleError(_0x229f99,null));};exports[_0x7547('0x52')]=function(_0x3a11d2,_0x5acfb0,_0x5df314){var _0x4b9dc1={};var _0x12da57={};var _0x157a40;var _0x57d0ee;return db[_0x7547('0x2d')]['findOne']({'where':{'id':_0x3a11d2[_0x7547('0x4a')]['id']}})[_0x7547('0x25')](handleEntityNotFound(_0x5acfb0,null))['then'](function(_0x436353){if(_0x436353){_0x157a40=_0x436353;_0x12da57[_0x7547('0x32')]=_['keys'](db[_0x7547('0x53')][_0x7547('0x2e')]);_0x12da57['query']=_['keys'](_0x3a11d2[_0x7547('0x33')]);_0x12da57['filters']=_[_0x7547('0x34')](_0x12da57[_0x7547('0x32')],_0x12da57[_0x7547('0x33')]);_0x4b9dc1[_0x7547('0x35')]=_[_0x7547('0x34')](_0x12da57['model'],qs[_0x7547('0x36')](_0x3a11d2[_0x7547('0x33')]['fields']));_0x4b9dc1[_0x7547('0x35')]=_0x4b9dc1[_0x7547('0x35')][_0x7547('0x37')]?_0x4b9dc1['attributes']:_0x12da57['model'];_0x4b9dc1[_0x7547('0x3a')]=qs[_0x7547('0x3b')](_0x3a11d2['query'][_0x7547('0x3b')]);_0x4b9dc1[_0x7547('0x3c')]=qs[_0x7547('0x3e')](_['pick'](_0x3a11d2[_0x7547('0x33')],_0x12da57[_0x7547('0x3e')]));if(_0x3a11d2[_0x7547('0x33')][_0x7547('0x3f')]){_0x4b9dc1[_0x7547('0x3c')]=_['merge'](_0x4b9dc1[_0x7547('0x3c')],{'$or':_[_0x7547('0x2c')](_0x4b9dc1['attributes'],function(_0x1fc798){var _0x583322={};_0x583322[_0x1fc798]={'$like':'%'+_0x3a11d2[_0x7547('0x33')]['filter']+'%'};return _0x583322;})});}_0x4b9dc1=_[_0x7547('0x40')]({},_0x4b9dc1,_0x3a11d2['options']);return _0x157a40[_0x7547('0x52')](_0x4b9dc1);}})['then'](function(_0xb695ee){if(_0xb695ee){_0x57d0ee=_0xb695ee[_0x7547('0x37')];if(!_0x3a11d2['query'][_0x7547('0x38')]('nolimit')){_0x4b9dc1[_0x7547('0x1d')]=qs['limit'](_0x3a11d2[_0x7547('0x33')]['limit']);_0x4b9dc1[_0x7547('0x1c')]=qs['offset'](_0x3a11d2[_0x7547('0x33')][_0x7547('0x1c')]);}return _0x157a40[_0x7547('0x52')](_0x4b9dc1);}})['then'](function(_0x547c96){if(_0x547c96){return _0x547c96?{'count':_0x57d0ee,'rows':_0x547c96}:null;}})[_0x7547('0x25')](respondWithResult(_0x5acfb0,null))['catch'](handleError(_0x5acfb0,null));};