Built motion from commit db94841.|2.5.3
[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 _0x7530=['../../mysqldb','sendStatus','status','end','json','offset','limit','set','Content-Range','apply','reject','save','update','then','destroy','error','stack','name','send','Automation','type','key','model','map','query','keys','filters','intersection','attributes','fields','length','order','sort','pick','VIRTUAL','filter','merge','options','where','count','include','findAll','show','params','includeAll','find','catch','create','body','addConditions','ids','getConditions','findOne','Condition','hasOwnProperty','addActions','omit','getActions','Action','rawAttributes','nolimit','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment'];(function(_0xf20793,_0x31bd9a){var _0x20aa67=function(_0x5aca8a){while(--_0x5aca8a){_0xf20793['push'](_0xf20793['shift']());}};_0x20aa67(++_0x31bd9a);}(_0x7530,0x142));var _0x0753=function(_0x9f021c,_0x59b485){_0x9f021c=_0x9f021c-0x0;var _0x3f6ca8=_0x7530[_0x9f021c];return _0x3f6ca8;};'use strict';var pdf=require('html-pdf');var emlformat=require('eml-format');var rimraf=require(_0x0753('0x0'));var zipdir=require(_0x0753('0x1'));var jsonpatch=require(_0x0753('0x2'));var rp=require(_0x0753('0x3'));var moment=require(_0x0753('0x4'));var BPromise=require(_0x0753('0x5'));var Mustache=require(_0x0753('0x6'));var util=require(_0x0753('0x7'));var path=require('path');var sox=require(_0x0753('0x8'));var csv=require(_0x0753('0x9'));var ejs=require(_0x0753('0xa'));var fs=require('fs');var _=require(_0x0753('0xb'));var squel=require(_0x0753('0xc'));var crypto=require('crypto');var jsforce=require(_0x0753('0xd'));var deskjs=require(_0x0753('0xe'));var toCsv=require(_0x0753('0x9'));var querystring=require(_0x0753('0xf'));var Papa=require(_0x0753('0x10'));var Redis=require(_0x0753('0x11'));var authService=require(_0x0753('0x12'));var qs=require(_0x0753('0x13'));var as=require(_0x0753('0x14'));var hardwareService=require(_0x0753('0x15'));var logger=require(_0x0753('0x16'))(_0x0753('0x17'));var utils=require(_0x0753('0x18'));var config=require(_0x0753('0x19'));var db=require(_0x0753('0x1a'))['db'];function respondWithStatusCode(_0x4d71c6,_0x2741ab){_0x2741ab=_0x2741ab||0xcc;return function(_0x2eb290){if(_0x2eb290){return _0x4d71c6[_0x0753('0x1b')](_0x2741ab);}return _0x4d71c6[_0x0753('0x1c')](_0x2741ab)[_0x0753('0x1d')]();};}function respondWithResult(_0x2e3e2a,_0x49aafc){_0x49aafc=_0x49aafc||0xc8;return function(_0x217587){if(_0x217587){return _0x2e3e2a[_0x0753('0x1c')](_0x49aafc)[_0x0753('0x1e')](_0x217587);}};}function respondWithFilteredResult(_0x5a2cbf,_0x1c95bd){return function(_0xc2ebd3){if(_0xc2ebd3){var _0x280d59=_0xc2ebd3['count'],_0x24813a=_0x1c95bd[_0x0753('0x1f')],_0x3e6d60=_0x1c95bd[_0x0753('0x1f')]+_0x1c95bd[_0x0753('0x20')],_0x205b81;if(_0x3e6d60>=_0x280d59){_0x3e6d60=_0x280d59;_0x205b81=0xc8;}else{_0x205b81=0xce;}_0x5a2cbf[_0x0753('0x1c')](_0x205b81);return _0x5a2cbf[_0x0753('0x21')](_0x0753('0x22'),_0x24813a+'-'+_0x3e6d60+'/'+_0x280d59)[_0x0753('0x1e')](_0xc2ebd3);}return null;};}function patchUpdates(_0x32114d){return function(_0x281f4f){try{jsonpatch[_0x0753('0x23')](_0x281f4f,_0x32114d,!![]);}catch(_0x5de08c){return BPromise[_0x0753('0x24')](_0x5de08c);}return _0x281f4f[_0x0753('0x25')]();};}function saveUpdates(_0x1d1b92,_0x58ff20){return function(_0x52797e){if(_0x52797e){return _0x52797e[_0x0753('0x26')](_0x1d1b92)[_0x0753('0x27')](function(_0x3105e0){return _0x3105e0;});}return null;};}function removeEntity(_0x3679aa,_0x3dbc70){return function(_0x2d0af6){if(_0x2d0af6){return _0x2d0af6[_0x0753('0x28')]()[_0x0753('0x27')](function(){_0x3679aa[_0x0753('0x1c')](0xcc)[_0x0753('0x1d')]();});}};}function handleEntityNotFound(_0x30c4d4,_0x31c809){return function(_0x3cca91){if(!_0x3cca91){_0x30c4d4[_0x0753('0x1b')](0x194);}return _0x3cca91;};}function handleError(_0x4ec0ae,_0x377511){_0x377511=_0x377511||0x1f4;return function(_0x55653f){logger[_0x0753('0x29')](_0x55653f[_0x0753('0x2a')]);if(_0x55653f[_0x0753('0x2b')]){delete _0x55653f[_0x0753('0x2b')];}_0x4ec0ae[_0x0753('0x1c')](_0x377511)[_0x0753('0x2c')](_0x55653f);};}exports['index']=function(_0x50a7a5,_0x714611){var _0x312da9={},_0x98cee6={},_0x47bc91={'count':0x0,'rows':[]};var _0xe0d359=_['map'](db[_0x0753('0x2d')]['rawAttributes'],function(_0x4638cd){return{'name':_0x4638cd['fieldName'],'type':_0x4638cd[_0x0753('0x2e')][_0x0753('0x2f')]};});_0x98cee6[_0x0753('0x30')]=_[_0x0753('0x31')](_0xe0d359,'name');_0x98cee6[_0x0753('0x32')]=_[_0x0753('0x33')](_0x50a7a5[_0x0753('0x32')]);_0x98cee6[_0x0753('0x34')]=_[_0x0753('0x35')](_0x98cee6['model'],_0x98cee6['query']);_0x312da9[_0x0753('0x36')]=_[_0x0753('0x35')](_0x98cee6[_0x0753('0x30')],qs[_0x0753('0x37')](_0x50a7a5[_0x0753('0x32')]['fields']));_0x312da9[_0x0753('0x36')]=_0x312da9[_0x0753('0x36')][_0x0753('0x38')]?_0x312da9[_0x0753('0x36')]:_0x98cee6[_0x0753('0x30')];if(!_0x50a7a5[_0x0753('0x32')]['hasOwnProperty']('nolimit')){_0x312da9[_0x0753('0x20')]=qs[_0x0753('0x20')](_0x50a7a5['query'][_0x0753('0x20')]);_0x312da9[_0x0753('0x1f')]=qs[_0x0753('0x1f')](_0x50a7a5[_0x0753('0x32')][_0x0753('0x1f')]);}_0x312da9[_0x0753('0x39')]=qs[_0x0753('0x3a')](_0x50a7a5['query'][_0x0753('0x3a')]);_0x312da9['where']=qs['filters'](_[_0x0753('0x3b')](_0x50a7a5[_0x0753('0x32')],_0x98cee6[_0x0753('0x34')]),_0xe0d359);if(_0x50a7a5[_0x0753('0x32')]['filter']){_0x312da9['where']=_['merge'](_0x312da9['where'],{'$or':_[_0x0753('0x31')](_0xe0d359,function(_0x2e4acc){if(_0x2e4acc[_0x0753('0x2e')]!==_0x0753('0x3c')){var _0x1a9beb={};_0x1a9beb[_0x2e4acc[_0x0753('0x2b')]]={'$like':'%'+_0x50a7a5[_0x0753('0x32')][_0x0753('0x3d')]+'%'};return _0x1a9beb;}})});}_0x312da9=_[_0x0753('0x3e')]({},_0x312da9,_0x50a7a5[_0x0753('0x3f')]);var _0x471ba9={'where':_0x312da9[_0x0753('0x40')]};return db[_0x0753('0x2d')][_0x0753('0x41')](_0x471ba9)[_0x0753('0x27')](function(_0x28d8c0){_0x47bc91['count']=_0x28d8c0;if(_0x50a7a5[_0x0753('0x32')]['includeAll']){_0x312da9[_0x0753('0x42')]=[{'all':!![]}];}return db[_0x0753('0x2d')][_0x0753('0x43')](_0x312da9);})[_0x0753('0x27')](function(_0x3602b4){_0x47bc91['rows']=_0x3602b4;return _0x47bc91;})[_0x0753('0x27')](respondWithFilteredResult(_0x714611,_0x312da9))['catch'](handleError(_0x714611,null));};exports[_0x0753('0x44')]=function(_0x4a0bfb,_0x591e3e){var _0x16ce47={'raw':![],'where':{'id':_0x4a0bfb[_0x0753('0x45')]['id']}},_0x4d6d7f={};_0x4d6d7f['model']=_[_0x0753('0x33')](db[_0x0753('0x2d')]['rawAttributes']);_0x4d6d7f[_0x0753('0x32')]=_[_0x0753('0x33')](_0x4a0bfb[_0x0753('0x32')]);_0x4d6d7f['filters']=_[_0x0753('0x35')](_0x4d6d7f[_0x0753('0x30')],_0x4d6d7f[_0x0753('0x32')]);_0x16ce47[_0x0753('0x36')]=_[_0x0753('0x35')](_0x4d6d7f[_0x0753('0x30')],qs[_0x0753('0x37')](_0x4a0bfb[_0x0753('0x32')][_0x0753('0x37')]));_0x16ce47['attributes']=_0x16ce47[_0x0753('0x36')][_0x0753('0x38')]?_0x16ce47[_0x0753('0x36')]:_0x4d6d7f[_0x0753('0x30')];if(_0x4a0bfb['query'][_0x0753('0x46')]){_0x16ce47[_0x0753('0x42')]=[{'all':!![]}];}_0x16ce47=_[_0x0753('0x3e')]({},_0x16ce47,_0x4a0bfb[_0x0753('0x3f')]);return db[_0x0753('0x2d')][_0x0753('0x47')](_0x16ce47)[_0x0753('0x27')](handleEntityNotFound(_0x591e3e,null))[_0x0753('0x27')](respondWithResult(_0x591e3e,null))[_0x0753('0x48')](handleError(_0x591e3e,null));};exports[_0x0753('0x49')]=function(_0x3eeb5e,_0x5f4c07){return db['Automation'][_0x0753('0x49')](_0x3eeb5e[_0x0753('0x4a')],{})['then'](respondWithResult(_0x5f4c07,0xc9))[_0x0753('0x48')](handleError(_0x5f4c07,null));};exports[_0x0753('0x26')]=function(_0x455397,_0x13cb00){if(_0x455397[_0x0753('0x4a')]['id']){delete _0x455397[_0x0753('0x4a')]['id'];}return db[_0x0753('0x2d')]['find']({'where':{'id':_0x455397[_0x0753('0x45')]['id']}})['then'](handleEntityNotFound(_0x13cb00,null))[_0x0753('0x27')](saveUpdates(_0x455397[_0x0753('0x4a')],null))['then'](respondWithResult(_0x13cb00,null))['catch'](handleError(_0x13cb00,null));};exports[_0x0753('0x28')]=function(_0x53bd88,_0x318c65){return db['Automation'][_0x0753('0x47')]({'where':{'id':_0x53bd88['params']['id']}})[_0x0753('0x27')](handleEntityNotFound(_0x318c65,null))[_0x0753('0x27')](removeEntity(_0x318c65,null))['catch'](handleError(_0x318c65,null));};exports[_0x0753('0x4b')]=function(_0xa31e54,_0x3e51ae,_0x1b0bd3){return db['Condition']['find']({'where':{'id':_0xa31e54[_0x0753('0x45')]['id']}})[_0x0753('0x27')](handleEntityNotFound(_0x3e51ae,null))[_0x0753('0x27')](function(_0x1b5690){if(_0x1b5690){return _0x1b5690[_0x0753('0x4b')](_0xa31e54[_0x0753('0x4a')][_0x0753('0x4c')],_['omit'](_0xa31e54[_0x0753('0x4a')],[_0x0753('0x4c'),'id'])||{});}})[_0x0753('0x27')](respondWithResult(_0x3e51ae,null))[_0x0753('0x48')](handleError(_0x3e51ae,null));};exports[_0x0753('0x4d')]=function(_0x5d2d44,_0x2f1e5c,_0x1ad482){var _0x43ba45={};var _0x428754={};var _0x3be8e1;var _0x501ab5;return db['Automation'][_0x0753('0x4e')]({'where':{'id':_0x5d2d44[_0x0753('0x45')]['id']}})['then'](handleEntityNotFound(_0x2f1e5c,null))[_0x0753('0x27')](function(_0x32f470){if(_0x32f470){_0x3be8e1=_0x32f470;_0x428754[_0x0753('0x30')]=_[_0x0753('0x33')](db[_0x0753('0x4f')]['rawAttributes']);_0x428754[_0x0753('0x32')]=_['keys'](_0x5d2d44['query']);_0x428754['filters']=_['intersection'](_0x428754['model'],_0x428754[_0x0753('0x32')]);_0x43ba45[_0x0753('0x36')]=_['intersection'](_0x428754[_0x0753('0x30')],qs['fields'](_0x5d2d44['query'][_0x0753('0x37')]));_0x43ba45['attributes']=_0x43ba45['attributes'][_0x0753('0x38')]?_0x43ba45[_0x0753('0x36')]:_0x428754[_0x0753('0x30')];_0x43ba45[_0x0753('0x39')]=qs[_0x0753('0x3a')](_0x5d2d44[_0x0753('0x32')]['sort']);_0x43ba45[_0x0753('0x40')]=qs['filters'](_[_0x0753('0x3b')](_0x5d2d44[_0x0753('0x32')],_0x428754['filters']));if(_0x5d2d44[_0x0753('0x32')][_0x0753('0x3d')]){_0x43ba45['where']=_[_0x0753('0x3e')](_0x43ba45[_0x0753('0x40')],{'$or':_[_0x0753('0x31')](_0x43ba45['attributes'],function(_0xc3b28f){var _0x423d9f={};_0x423d9f[_0xc3b28f]={'$like':'%'+_0x5d2d44[_0x0753('0x32')]['filter']+'%'};return _0x423d9f;})});}_0x43ba45=_[_0x0753('0x3e')]({},_0x43ba45,_0x5d2d44['options']);return _0x3be8e1[_0x0753('0x4d')](_0x43ba45);}})[_0x0753('0x27')](function(_0x44347f){if(_0x44347f){_0x501ab5=_0x44347f['length'];if(!_0x5d2d44[_0x0753('0x32')][_0x0753('0x50')]('nolimit')){_0x43ba45['limit']=qs[_0x0753('0x20')](_0x5d2d44[_0x0753('0x32')][_0x0753('0x20')]);_0x43ba45['offset']=qs[_0x0753('0x1f')](_0x5d2d44[_0x0753('0x32')][_0x0753('0x1f')]);}return _0x3be8e1['getConditions'](_0x43ba45);}})[_0x0753('0x27')](function(_0x393a3e){if(_0x393a3e){return _0x393a3e?{'count':_0x501ab5,'rows':_0x393a3e}:null;}})[_0x0753('0x27')](respondWithResult(_0x2f1e5c,null))['catch'](handleError(_0x2f1e5c,null));};exports[_0x0753('0x51')]=function(_0x11acf3,_0x53be0d,_0x147aff){return db['Action'][_0x0753('0x47')]({'where':{'id':_0x11acf3[_0x0753('0x45')]['id']}})['then'](handleEntityNotFound(_0x53be0d,null))['then'](function(_0xf62caa){if(_0xf62caa){return _0xf62caa['addActions'](_0x11acf3[_0x0753('0x4a')][_0x0753('0x4c')],_[_0x0753('0x52')](_0x11acf3[_0x0753('0x4a')],[_0x0753('0x4c'),'id'])||{});}})['then'](respondWithResult(_0x53be0d,null))[_0x0753('0x48')](handleError(_0x53be0d,null));};exports[_0x0753('0x53')]=function(_0x4d183e,_0x3d9875,_0x2c1e9a){var _0x23133b={};var _0x24cb16={};var _0x268830;var _0xda7160;return db[_0x0753('0x2d')][_0x0753('0x4e')]({'where':{'id':_0x4d183e[_0x0753('0x45')]['id']}})[_0x0753('0x27')](handleEntityNotFound(_0x3d9875,null))[_0x0753('0x27')](function(_0x2fec47){if(_0x2fec47){_0x268830=_0x2fec47;_0x24cb16[_0x0753('0x30')]=_['keys'](db[_0x0753('0x54')][_0x0753('0x55')]);_0x24cb16[_0x0753('0x32')]=_[_0x0753('0x33')](_0x4d183e[_0x0753('0x32')]);_0x24cb16[_0x0753('0x34')]=_[_0x0753('0x35')](_0x24cb16[_0x0753('0x30')],_0x24cb16['query']);_0x23133b[_0x0753('0x36')]=_[_0x0753('0x35')](_0x24cb16[_0x0753('0x30')],qs[_0x0753('0x37')](_0x4d183e[_0x0753('0x32')][_0x0753('0x37')]));_0x23133b[_0x0753('0x36')]=_0x23133b[_0x0753('0x36')][_0x0753('0x38')]?_0x23133b[_0x0753('0x36')]:_0x24cb16['model'];_0x23133b[_0x0753('0x39')]=qs['sort'](_0x4d183e['query'][_0x0753('0x3a')]);_0x23133b[_0x0753('0x40')]=qs[_0x0753('0x34')](_[_0x0753('0x3b')](_0x4d183e[_0x0753('0x32')],_0x24cb16[_0x0753('0x34')]));if(_0x4d183e['query']['filter']){_0x23133b[_0x0753('0x40')]=_['merge'](_0x23133b[_0x0753('0x40')],{'$or':_[_0x0753('0x31')](_0x23133b['attributes'],function(_0x1a4a7d){var _0x42c108={};_0x42c108[_0x1a4a7d]={'$like':'%'+_0x4d183e[_0x0753('0x32')]['filter']+'%'};return _0x42c108;})});}_0x23133b=_['merge']({},_0x23133b,_0x4d183e['options']);return _0x268830['getActions'](_0x23133b);}})[_0x0753('0x27')](function(_0x1ab971){if(_0x1ab971){_0xda7160=_0x1ab971[_0x0753('0x38')];if(!_0x4d183e[_0x0753('0x32')][_0x0753('0x50')](_0x0753('0x56'))){_0x23133b[_0x0753('0x20')]=qs[_0x0753('0x20')](_0x4d183e[_0x0753('0x32')][_0x0753('0x20')]);_0x23133b[_0x0753('0x1f')]=qs[_0x0753('0x1f')](_0x4d183e[_0x0753('0x32')]['offset']);}return _0x268830['getActions'](_0x23133b);}})['then'](function(_0x5cd9ed){if(_0x5cd9ed){return _0x5cd9ed?{'count':_0xda7160,'rows':_0x5cd9ed}:null;}})[_0x0753('0x27')](respondWithResult(_0x3d9875,null))[_0x0753('0x48')](handleError(_0x3d9875,null));};