Built motion from commit bab6f49e.|2.6.17
[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 _0x73c2=['include','findAll','catch','show','params','find','create','body','addConditions','Condition','ids','omit','getConditions','findOne','addActions','Action','getActions','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','lodash','squel','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../mysqldb','sendStatus','status','offset','undefined','limit','count','json','apply','reject','save','update','destroy','then','end','error','name','index','rawAttributes','type','key','model','map','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','VIRTUAL','merge','options','Automation','includeAll'];(function(_0x10dea8,_0x1ab020){var _0x20772f=function(_0x4de52e){while(--_0x4de52e){_0x10dea8['push'](_0x10dea8['shift']());}};_0x20772f(++_0x1ab020);}(_0x73c2,0x65));var _0x273c=function(_0x465a0c,_0x19d4d5){_0x465a0c=_0x465a0c-0x0;var _0x1e202e=_0x73c2[_0x465a0c];return _0x1e202e;};'use strict';var emlformat=require(_0x273c('0x0'));var rimraf=require(_0x273c('0x1'));var zipdir=require(_0x273c('0x2'));var jsonpatch=require(_0x273c('0x3'));var rp=require(_0x273c('0x4'));var moment=require(_0x273c('0x5'));var BPromise=require(_0x273c('0x6'));var Mustache=require(_0x273c('0x7'));var util=require('util');var path=require(_0x273c('0x8'));var sox=require(_0x273c('0x9'));var csv=require(_0x273c('0xa'));var ejs=require(_0x273c('0xb'));var fs=require('fs');var fs_extra=require(_0x273c('0xc'));var _=require(_0x273c('0xd'));var squel=require(_0x273c('0xe'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x273c('0xf'));var toCsv=require(_0x273c('0xa'));var querystring=require(_0x273c('0x10'));var Papa=require(_0x273c('0x11'));var Redis=require('ioredis');var authService=require(_0x273c('0x12'));var qs=require(_0x273c('0x13'));var as=require(_0x273c('0x14'));var hardwareService=require(_0x273c('0x15'));var logger=require(_0x273c('0x16'))(_0x273c('0x17'));var utils=require('../../config/utils');var config=require(_0x273c('0x18'));var licenseUtil=require('../../config/license/util');var db=require(_0x273c('0x19'))['db'];function respondWithStatusCode(_0x116884,_0x3afa1e){_0x3afa1e=_0x3afa1e||0xcc;return function(_0x5cff04){if(_0x5cff04){return _0x116884[_0x273c('0x1a')](_0x3afa1e);}return _0x116884[_0x273c('0x1b')](_0x3afa1e)['end']();};}function respondWithResult(_0x33f485,_0x4b5551){_0x4b5551=_0x4b5551||0xc8;return function(_0x49ddf9){if(_0x49ddf9){return _0x33f485['status'](_0x4b5551)['json'](_0x49ddf9);}};}function respondWithFilteredResult(_0x217020,_0x3d44cd){return function(_0x9480b4){if(_0x9480b4){var _0x4ea849=typeof _0x3d44cd[_0x273c('0x1c')]===_0x273c('0x1d')&&typeof _0x3d44cd[_0x273c('0x1e')]===_0x273c('0x1d');var _0xdee80c=_0x9480b4[_0x273c('0x1f')];var _0x1c8608=_0x4ea849?0x0:_0x3d44cd[_0x273c('0x1c')];var _0x8ac9bb=_0x4ea849?_0x9480b4[_0x273c('0x1f')]:_0x3d44cd[_0x273c('0x1c')]+_0x3d44cd[_0x273c('0x1e')];var _0x2cbb39;if(_0x8ac9bb>=_0xdee80c){_0x8ac9bb=_0xdee80c;_0x2cbb39=0xc8;}else{_0x2cbb39=0xce;}_0x217020[_0x273c('0x1b')](_0x2cbb39);return _0x217020['set']('Content-Range',_0x1c8608+'-'+_0x8ac9bb+'/'+_0xdee80c)[_0x273c('0x20')](_0x9480b4);}return null;};}function patchUpdates(_0x19865e){return function(_0x3c99dd){try{jsonpatch[_0x273c('0x21')](_0x3c99dd,_0x19865e,!![]);}catch(_0x4b0f90){return BPromise[_0x273c('0x22')](_0x4b0f90);}return _0x3c99dd[_0x273c('0x23')]();};}function saveUpdates(_0x541e46,_0x4d6b1a){return function(_0x3442c1){if(_0x3442c1){return _0x3442c1[_0x273c('0x24')](_0x541e46)['then'](function(_0x1b84c7){return _0x1b84c7;});}return null;};}function removeEntity(_0x27d57c,_0x2579ec){return function(_0x530f34){if(_0x530f34){return _0x530f34[_0x273c('0x25')]()[_0x273c('0x26')](function(){_0x27d57c['status'](0xcc)[_0x273c('0x27')]();});}};}function handleEntityNotFound(_0x11c0c8,_0x10bf3a){return function(_0x4f972c){if(!_0x4f972c){_0x11c0c8['sendStatus'](0x194);}return _0x4f972c;};}function handleError(_0x2607eb,_0x1309f4){_0x1309f4=_0x1309f4||0x1f4;return function(_0x50644c){logger[_0x273c('0x28')](_0x50644c['stack']);if(_0x50644c['name']){delete _0x50644c[_0x273c('0x29')];}_0x2607eb[_0x273c('0x1b')](_0x1309f4)['send'](_0x50644c);};}exports[_0x273c('0x2a')]=function(_0x5158cc,_0x1e04ce){var _0x751915={},_0x3a4b53={},_0x36046c={'count':0x0,'rows':[]};var _0x3c959a=_['map'](db['Automation'][_0x273c('0x2b')],function(_0x47e2d0){return{'name':_0x47e2d0['fieldName'],'type':_0x47e2d0[_0x273c('0x2c')][_0x273c('0x2d')]};});_0x3a4b53[_0x273c('0x2e')]=_[_0x273c('0x2f')](_0x3c959a,'name');_0x3a4b53['query']=_[_0x273c('0x30')](_0x5158cc[_0x273c('0x31')]);_0x3a4b53[_0x273c('0x32')]=_[_0x273c('0x33')](_0x3a4b53['model'],_0x3a4b53[_0x273c('0x31')]);_0x751915[_0x273c('0x34')]=_[_0x273c('0x33')](_0x3a4b53['model'],qs['fields'](_0x5158cc[_0x273c('0x31')][_0x273c('0x35')]));_0x751915[_0x273c('0x34')]=_0x751915[_0x273c('0x34')][_0x273c('0x36')]?_0x751915[_0x273c('0x34')]:_0x3a4b53['model'];if(!_0x5158cc['query'][_0x273c('0x37')](_0x273c('0x38'))){_0x751915[_0x273c('0x1e')]=qs[_0x273c('0x1e')](_0x5158cc[_0x273c('0x31')]['limit']);_0x751915[_0x273c('0x1c')]=qs[_0x273c('0x1c')](_0x5158cc[_0x273c('0x31')][_0x273c('0x1c')]);}_0x751915[_0x273c('0x39')]=qs['sort'](_0x5158cc['query'][_0x273c('0x3a')]);_0x751915[_0x273c('0x3b')]=qs['filters'](_[_0x273c('0x3c')](_0x5158cc[_0x273c('0x31')],_0x3a4b53[_0x273c('0x32')]),_0x3c959a);if(_0x5158cc[_0x273c('0x31')][_0x273c('0x3d')]){_0x751915['where']=_['merge'](_0x751915['where'],{'$or':_[_0x273c('0x2f')](_0x3c959a,function(_0x44c78a){if(_0x44c78a[_0x273c('0x2c')]!==_0x273c('0x3e')){var _0x4a2ff2={};_0x4a2ff2[_0x44c78a[_0x273c('0x29')]]={'$like':'%'+_0x5158cc['query']['filter']+'%'};return _0x4a2ff2;}})});}_0x751915=_[_0x273c('0x3f')]({},_0x751915,_0x5158cc[_0x273c('0x40')]);var _0x351441={'where':_0x751915[_0x273c('0x3b')]};return db[_0x273c('0x41')][_0x273c('0x1f')](_0x351441)['then'](function(_0x152cb3){_0x36046c[_0x273c('0x1f')]=_0x152cb3;if(_0x5158cc[_0x273c('0x31')][_0x273c('0x42')]){_0x751915[_0x273c('0x43')]=[{'all':!![]}];}return db['Automation'][_0x273c('0x44')](_0x751915);})[_0x273c('0x26')](function(_0x1739e9){_0x36046c['rows']=_0x1739e9;return _0x36046c;})[_0x273c('0x26')](respondWithFilteredResult(_0x1e04ce,_0x751915))[_0x273c('0x45')](handleError(_0x1e04ce,null));};exports[_0x273c('0x46')]=function(_0xd4ad67,_0x293af1){var _0x1ef20f={'raw':![],'where':{'id':_0xd4ad67[_0x273c('0x47')]['id']}},_0x23d98a={};_0x23d98a[_0x273c('0x2e')]=_[_0x273c('0x30')](db['Automation']['rawAttributes']);_0x23d98a[_0x273c('0x31')]=_[_0x273c('0x30')](_0xd4ad67[_0x273c('0x31')]);_0x23d98a[_0x273c('0x32')]=_[_0x273c('0x33')](_0x23d98a[_0x273c('0x2e')],_0x23d98a[_0x273c('0x31')]);_0x1ef20f['attributes']=_[_0x273c('0x33')](_0x23d98a[_0x273c('0x2e')],qs['fields'](_0xd4ad67[_0x273c('0x31')]['fields']));_0x1ef20f[_0x273c('0x34')]=_0x1ef20f[_0x273c('0x34')]['length']?_0x1ef20f[_0x273c('0x34')]:_0x23d98a[_0x273c('0x2e')];if(_0xd4ad67['query'][_0x273c('0x42')]){_0x1ef20f[_0x273c('0x43')]=[{'all':!![]}];}_0x1ef20f=_['merge']({},_0x1ef20f,_0xd4ad67[_0x273c('0x40')]);return db['Automation'][_0x273c('0x48')](_0x1ef20f)[_0x273c('0x26')](handleEntityNotFound(_0x293af1,null))[_0x273c('0x26')](respondWithResult(_0x293af1,null))['catch'](handleError(_0x293af1,null));};exports[_0x273c('0x49')]=function(_0x46e93f,_0x33ca8e){return db[_0x273c('0x41')][_0x273c('0x49')](_0x46e93f[_0x273c('0x4a')],{})['then'](respondWithResult(_0x33ca8e,0xc9))[_0x273c('0x45')](handleError(_0x33ca8e,null));};exports[_0x273c('0x24')]=function(_0x58ac27,_0x513e7e){if(_0x58ac27[_0x273c('0x4a')]['id']){delete _0x58ac27[_0x273c('0x4a')]['id'];}return db[_0x273c('0x41')][_0x273c('0x48')]({'where':{'id':_0x58ac27['params']['id']}})[_0x273c('0x26')](handleEntityNotFound(_0x513e7e,null))[_0x273c('0x26')](saveUpdates(_0x58ac27[_0x273c('0x4a')],null))['then'](respondWithResult(_0x513e7e,null))[_0x273c('0x45')](handleError(_0x513e7e,null));};exports[_0x273c('0x25')]=function(_0x52d6d0,_0x197d32){return db[_0x273c('0x41')][_0x273c('0x48')]({'where':{'id':_0x52d6d0[_0x273c('0x47')]['id']}})[_0x273c('0x26')](handleEntityNotFound(_0x197d32,null))[_0x273c('0x26')](removeEntity(_0x197d32,null))['catch'](handleError(_0x197d32,null));};exports[_0x273c('0x4b')]=function(_0x2b2825,_0x3db9d5,_0x1b6189){return db[_0x273c('0x4c')][_0x273c('0x48')]({'where':{'id':_0x2b2825['params']['id']}})[_0x273c('0x26')](handleEntityNotFound(_0x3db9d5,null))[_0x273c('0x26')](function(_0x2f62b2){if(_0x2f62b2){return _0x2f62b2[_0x273c('0x4b')](_0x2b2825['body'][_0x273c('0x4d')],_[_0x273c('0x4e')](_0x2b2825[_0x273c('0x4a')],[_0x273c('0x4d'),'id'])||{});}})['then'](respondWithResult(_0x3db9d5,null))[_0x273c('0x45')](handleError(_0x3db9d5,null));};exports[_0x273c('0x4f')]=function(_0x495dfc,_0x35bfb3,_0x1056f7){var _0x5806e8={};var _0x2f3ace={};var _0x54c7e5;var _0x23049d;return db[_0x273c('0x41')][_0x273c('0x50')]({'where':{'id':_0x495dfc['params']['id']}})['then'](handleEntityNotFound(_0x35bfb3,null))[_0x273c('0x26')](function(_0x7f51d3){if(_0x7f51d3){_0x54c7e5=_0x7f51d3;_0x2f3ace[_0x273c('0x2e')]=_[_0x273c('0x30')](db['Condition']['rawAttributes']);_0x2f3ace[_0x273c('0x31')]=_[_0x273c('0x30')](_0x495dfc['query']);_0x2f3ace['filters']=_[_0x273c('0x33')](_0x2f3ace[_0x273c('0x2e')],_0x2f3ace[_0x273c('0x31')]);_0x5806e8[_0x273c('0x34')]=_[_0x273c('0x33')](_0x2f3ace[_0x273c('0x2e')],qs[_0x273c('0x35')](_0x495dfc[_0x273c('0x31')][_0x273c('0x35')]));_0x5806e8['attributes']=_0x5806e8['attributes'][_0x273c('0x36')]?_0x5806e8[_0x273c('0x34')]:_0x2f3ace['model'];_0x5806e8[_0x273c('0x39')]=qs[_0x273c('0x3a')](_0x495dfc[_0x273c('0x31')][_0x273c('0x3a')]);_0x5806e8[_0x273c('0x3b')]=qs[_0x273c('0x32')](_['pick'](_0x495dfc['query'],_0x2f3ace['filters']));if(_0x495dfc[_0x273c('0x31')][_0x273c('0x3d')]){_0x5806e8[_0x273c('0x3b')]=_[_0x273c('0x3f')](_0x5806e8['where'],{'$or':_['map'](_0x5806e8['attributes'],function(_0x4c5f6e){var _0x59f570={};_0x59f570[_0x4c5f6e]={'$like':'%'+_0x495dfc[_0x273c('0x31')][_0x273c('0x3d')]+'%'};return _0x59f570;})});}_0x5806e8=_[_0x273c('0x3f')]({},_0x5806e8,_0x495dfc[_0x273c('0x40')]);return _0x54c7e5[_0x273c('0x4f')](_0x5806e8);}})[_0x273c('0x26')](function(_0x5a6538){if(_0x5a6538){_0x23049d=_0x5a6538[_0x273c('0x36')];if(!_0x495dfc[_0x273c('0x31')][_0x273c('0x37')](_0x273c('0x38'))){_0x5806e8[_0x273c('0x1e')]=qs[_0x273c('0x1e')](_0x495dfc[_0x273c('0x31')][_0x273c('0x1e')]);_0x5806e8[_0x273c('0x1c')]=qs[_0x273c('0x1c')](_0x495dfc[_0x273c('0x31')][_0x273c('0x1c')]);}return _0x54c7e5['getConditions'](_0x5806e8);}})['then'](function(_0x5cab7f){if(_0x5cab7f){return _0x5cab7f?{'count':_0x23049d,'rows':_0x5cab7f}:null;}})[_0x273c('0x26')](respondWithResult(_0x35bfb3,null))[_0x273c('0x45')](handleError(_0x35bfb3,null));};exports[_0x273c('0x51')]=function(_0x1b2f4b,_0x25b048,_0x181a71){return db[_0x273c('0x52')][_0x273c('0x48')]({'where':{'id':_0x1b2f4b[_0x273c('0x47')]['id']}})[_0x273c('0x26')](handleEntityNotFound(_0x25b048,null))[_0x273c('0x26')](function(_0x316f38){if(_0x316f38){return _0x316f38[_0x273c('0x51')](_0x1b2f4b[_0x273c('0x4a')][_0x273c('0x4d')],_[_0x273c('0x4e')](_0x1b2f4b[_0x273c('0x4a')],[_0x273c('0x4d'),'id'])||{});}})[_0x273c('0x26')](respondWithResult(_0x25b048,null))[_0x273c('0x45')](handleError(_0x25b048,null));};exports['getActions']=function(_0x2251ac,_0x4aa6a8,_0x4c3829){var _0x59ae40={};var _0x2d5f00={};var _0x51fcb4;var _0x20cd21;return db[_0x273c('0x41')][_0x273c('0x50')]({'where':{'id':_0x2251ac[_0x273c('0x47')]['id']}})[_0x273c('0x26')](handleEntityNotFound(_0x4aa6a8,null))[_0x273c('0x26')](function(_0x5ae296){if(_0x5ae296){_0x51fcb4=_0x5ae296;_0x2d5f00[_0x273c('0x2e')]=_['keys'](db[_0x273c('0x52')][_0x273c('0x2b')]);_0x2d5f00[_0x273c('0x31')]=_['keys'](_0x2251ac[_0x273c('0x31')]);_0x2d5f00[_0x273c('0x32')]=_['intersection'](_0x2d5f00['model'],_0x2d5f00[_0x273c('0x31')]);_0x59ae40['attributes']=_['intersection'](_0x2d5f00[_0x273c('0x2e')],qs[_0x273c('0x35')](_0x2251ac[_0x273c('0x31')]['fields']));_0x59ae40[_0x273c('0x34')]=_0x59ae40[_0x273c('0x34')]['length']?_0x59ae40[_0x273c('0x34')]:_0x2d5f00[_0x273c('0x2e')];_0x59ae40['order']=qs[_0x273c('0x3a')](_0x2251ac[_0x273c('0x31')][_0x273c('0x3a')]);_0x59ae40[_0x273c('0x3b')]=qs[_0x273c('0x32')](_[_0x273c('0x3c')](_0x2251ac[_0x273c('0x31')],_0x2d5f00[_0x273c('0x32')]));if(_0x2251ac[_0x273c('0x31')]['filter']){_0x59ae40[_0x273c('0x3b')]=_[_0x273c('0x3f')](_0x59ae40[_0x273c('0x3b')],{'$or':_[_0x273c('0x2f')](_0x59ae40['attributes'],function(_0xc29ce6){var _0x649f91={};_0x649f91[_0xc29ce6]={'$like':'%'+_0x2251ac[_0x273c('0x31')][_0x273c('0x3d')]+'%'};return _0x649f91;})});}_0x59ae40=_[_0x273c('0x3f')]({},_0x59ae40,_0x2251ac[_0x273c('0x40')]);return _0x51fcb4[_0x273c('0x53')](_0x59ae40);}})[_0x273c('0x26')](function(_0x194e4f){if(_0x194e4f){_0x20cd21=_0x194e4f['length'];if(!_0x2251ac['query'][_0x273c('0x37')]('nolimit')){_0x59ae40[_0x273c('0x1e')]=qs['limit'](_0x2251ac[_0x273c('0x31')]['limit']);_0x59ae40['offset']=qs[_0x273c('0x1c')](_0x2251ac['query'][_0x273c('0x1c')]);}return _0x51fcb4['getActions'](_0x59ae40);}})['then'](function(_0x461b7f){if(_0x461b7f){return _0x461b7f?{'count':_0x20cd21,'rows':_0x461b7f}:null;}})[_0x273c('0x26')](respondWithResult(_0x4aa6a8,null))[_0x273c('0x45')](handleError(_0x4aa6a8,null));};