Built motion from commit da24aabd.|2.6.20
[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 _0xadd4=['findAll','rows','catch','show','params','length','create','body','find','Condition','ids','omit','getConditions','findOne','hasOwnProperty','addActions','Action','options','getActions','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','querystring','papaparse','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','reject','save','update','then','destroy','error','name','map','Automation','rawAttributes','fieldName','type','key','model','keys','query','filters','intersection','fields','attributes','nolimit','order','sort','where','pick','filter','merge','includeAll','include'];(function(_0x34aec4,_0x3801da){var _0x51e1a7=function(_0x24e87f){while(--_0x24e87f){_0x34aec4['push'](_0x34aec4['shift']());}};_0x51e1a7(++_0x3801da);}(_0xadd4,0x1ad));var _0x4add=function(_0x27488f,_0x58085d){_0x27488f=_0x27488f-0x0;var _0x3a0d9d=_0xadd4[_0x27488f];return _0x3a0d9d;};'use strict';var emlformat=require(_0x4add('0x0'));var rimraf=require(_0x4add('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x4add('0x2'));var rp=require(_0x4add('0x3'));var moment=require(_0x4add('0x4'));var BPromise=require(_0x4add('0x5'));var Mustache=require('mustache');var util=require(_0x4add('0x6'));var path=require(_0x4add('0x7'));var sox=require(_0x4add('0x8'));var csv=require(_0x4add('0x9'));var ejs=require(_0x4add('0xa'));var fs=require('fs');var fs_extra=require(_0x4add('0xb'));var _=require(_0x4add('0xc'));var squel=require(_0x4add('0xd'));var crypto=require(_0x4add('0xe'));var jsforce=require('jsforce');var deskjs=require(_0x4add('0xf'));var toCsv=require(_0x4add('0x9'));var querystring=require(_0x4add('0x10'));var Papa=require(_0x4add('0x11'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x4add('0x12'));var hardwareService=require(_0x4add('0x13'));var logger=require(_0x4add('0x14'))(_0x4add('0x15'));var utils=require(_0x4add('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0x4add('0x17'));var db=require(_0x4add('0x18'))['db'];function respondWithStatusCode(_0x5ddf8f,_0xf52d33){_0xf52d33=_0xf52d33||0xcc;return function(_0x109b21){if(_0x109b21){return _0x5ddf8f[_0x4add('0x19')](_0xf52d33);}return _0x5ddf8f[_0x4add('0x1a')](_0xf52d33)[_0x4add('0x1b')]();};}function respondWithResult(_0x291bf1,_0x2589df){_0x2589df=_0x2589df||0xc8;return function(_0x488040){if(_0x488040){return _0x291bf1[_0x4add('0x1a')](_0x2589df)[_0x4add('0x1c')](_0x488040);}};}function respondWithFilteredResult(_0x28387d,_0x377e05){return function(_0x40e4eb){if(_0x40e4eb){var _0x417dd1=typeof _0x377e05[_0x4add('0x1d')]===_0x4add('0x1e')&&typeof _0x377e05[_0x4add('0x1f')]===_0x4add('0x1e');var _0x98b6e1=_0x40e4eb[_0x4add('0x20')];var _0x1decc8=_0x417dd1?0x0:_0x377e05[_0x4add('0x1d')];var _0xfdca0=_0x417dd1?_0x40e4eb[_0x4add('0x20')]:_0x377e05[_0x4add('0x1d')]+_0x377e05[_0x4add('0x1f')];var _0x495940;if(_0xfdca0>=_0x98b6e1){_0xfdca0=_0x98b6e1;_0x495940=0xc8;}else{_0x495940=0xce;}_0x28387d[_0x4add('0x1a')](_0x495940);return _0x28387d[_0x4add('0x21')]('Content-Range',_0x1decc8+'-'+_0xfdca0+'/'+_0x98b6e1)['json'](_0x40e4eb);}return null;};}function patchUpdates(_0x52ea50){return function(_0x48851b){try{jsonpatch['apply'](_0x48851b,_0x52ea50,!![]);}catch(_0x317c53){return BPromise[_0x4add('0x22')](_0x317c53);}return _0x48851b[_0x4add('0x23')]();};}function saveUpdates(_0x354472,_0x22528e){return function(_0x25067f){if(_0x25067f){return _0x25067f[_0x4add('0x24')](_0x354472)[_0x4add('0x25')](function(_0x2cf388){return _0x2cf388;});}return null;};}function removeEntity(_0x22d1ef,_0x5e38a2){return function(_0x326234){if(_0x326234){return _0x326234[_0x4add('0x26')]()['then'](function(){_0x22d1ef[_0x4add('0x1a')](0xcc)[_0x4add('0x1b')]();});}};}function handleEntityNotFound(_0x10ab27,_0x4106be){return function(_0xe97b81){if(!_0xe97b81){_0x10ab27[_0x4add('0x19')](0x194);}return _0xe97b81;};}function handleError(_0x29b041,_0x5dd20a){_0x5dd20a=_0x5dd20a||0x1f4;return function(_0x3c5411){logger[_0x4add('0x27')](_0x3c5411['stack']);if(_0x3c5411[_0x4add('0x28')]){delete _0x3c5411[_0x4add('0x28')];}_0x29b041[_0x4add('0x1a')](_0x5dd20a)['send'](_0x3c5411);};}exports['index']=function(_0xcf6ec3,_0x3fa07b){var _0x1b0c62={},_0x397838={},_0x526e77={'count':0x0,'rows':[]};var _0x491cbb=_[_0x4add('0x29')](db[_0x4add('0x2a')][_0x4add('0x2b')],function(_0x4437c6){return{'name':_0x4437c6[_0x4add('0x2c')],'type':_0x4437c6[_0x4add('0x2d')][_0x4add('0x2e')]};});_0x397838[_0x4add('0x2f')]=_[_0x4add('0x29')](_0x491cbb,_0x4add('0x28'));_0x397838['query']=_[_0x4add('0x30')](_0xcf6ec3[_0x4add('0x31')]);_0x397838[_0x4add('0x32')]=_['intersection'](_0x397838['model'],_0x397838[_0x4add('0x31')]);_0x1b0c62['attributes']=_[_0x4add('0x33')](_0x397838[_0x4add('0x2f')],qs[_0x4add('0x34')](_0xcf6ec3[_0x4add('0x31')][_0x4add('0x34')]));_0x1b0c62[_0x4add('0x35')]=_0x1b0c62[_0x4add('0x35')]['length']?_0x1b0c62[_0x4add('0x35')]:_0x397838[_0x4add('0x2f')];if(!_0xcf6ec3['query']['hasOwnProperty'](_0x4add('0x36'))){_0x1b0c62[_0x4add('0x1f')]=qs['limit'](_0xcf6ec3['query'][_0x4add('0x1f')]);_0x1b0c62['offset']=qs[_0x4add('0x1d')](_0xcf6ec3['query'][_0x4add('0x1d')]);}_0x1b0c62[_0x4add('0x37')]=qs[_0x4add('0x38')](_0xcf6ec3[_0x4add('0x31')][_0x4add('0x38')]);_0x1b0c62[_0x4add('0x39')]=qs[_0x4add('0x32')](_[_0x4add('0x3a')](_0xcf6ec3[_0x4add('0x31')],_0x397838['filters']),_0x491cbb);if(_0xcf6ec3[_0x4add('0x31')][_0x4add('0x3b')]){_0x1b0c62[_0x4add('0x39')]=_[_0x4add('0x3c')](_0x1b0c62[_0x4add('0x39')],{'$or':_[_0x4add('0x29')](_0x491cbb,function(_0x2ad396){if(_0x2ad396[_0x4add('0x2d')]!=='VIRTUAL'){var _0x37cb07={};_0x37cb07[_0x2ad396[_0x4add('0x28')]]={'$like':'%'+_0xcf6ec3[_0x4add('0x31')][_0x4add('0x3b')]+'%'};return _0x37cb07;}})});}_0x1b0c62=_[_0x4add('0x3c')]({},_0x1b0c62,_0xcf6ec3['options']);var _0x377098={'where':_0x1b0c62[_0x4add('0x39')]};return db[_0x4add('0x2a')][_0x4add('0x20')](_0x377098)[_0x4add('0x25')](function(_0x391f53){_0x526e77[_0x4add('0x20')]=_0x391f53;if(_0xcf6ec3['query'][_0x4add('0x3d')]){_0x1b0c62[_0x4add('0x3e')]=[{'all':!![]}];}return db[_0x4add('0x2a')][_0x4add('0x3f')](_0x1b0c62);})[_0x4add('0x25')](function(_0x211fad){_0x526e77[_0x4add('0x40')]=_0x211fad;return _0x526e77;})[_0x4add('0x25')](respondWithFilteredResult(_0x3fa07b,_0x1b0c62))[_0x4add('0x41')](handleError(_0x3fa07b,null));};exports[_0x4add('0x42')]=function(_0xdff76a,_0x57851d){var _0x468761={'raw':![],'where':{'id':_0xdff76a[_0x4add('0x43')]['id']}},_0x5709e3={};_0x5709e3[_0x4add('0x2f')]=_['keys'](db[_0x4add('0x2a')][_0x4add('0x2b')]);_0x5709e3[_0x4add('0x31')]=_['keys'](_0xdff76a['query']);_0x5709e3[_0x4add('0x32')]=_[_0x4add('0x33')](_0x5709e3[_0x4add('0x2f')],_0x5709e3[_0x4add('0x31')]);_0x468761[_0x4add('0x35')]=_[_0x4add('0x33')](_0x5709e3[_0x4add('0x2f')],qs[_0x4add('0x34')](_0xdff76a['query'][_0x4add('0x34')]));_0x468761[_0x4add('0x35')]=_0x468761[_0x4add('0x35')][_0x4add('0x44')]?_0x468761['attributes']:_0x5709e3[_0x4add('0x2f')];if(_0xdff76a[_0x4add('0x31')]['includeAll']){_0x468761[_0x4add('0x3e')]=[{'all':!![]}];}_0x468761=_['merge']({},_0x468761,_0xdff76a['options']);return db[_0x4add('0x2a')]['find'](_0x468761)[_0x4add('0x25')](handleEntityNotFound(_0x57851d,null))[_0x4add('0x25')](respondWithResult(_0x57851d,null))[_0x4add('0x41')](handleError(_0x57851d,null));};exports['create']=function(_0x4e84be,_0x51652a){return db[_0x4add('0x2a')][_0x4add('0x45')](_0x4e84be[_0x4add('0x46')],{})[_0x4add('0x25')](respondWithResult(_0x51652a,0xc9))['catch'](handleError(_0x51652a,null));};exports[_0x4add('0x24')]=function(_0x353ebc,_0x5ab267){if(_0x353ebc[_0x4add('0x46')]['id']){delete _0x353ebc[_0x4add('0x46')]['id'];}return db[_0x4add('0x2a')]['find']({'where':{'id':_0x353ebc[_0x4add('0x43')]['id']}})[_0x4add('0x25')](handleEntityNotFound(_0x5ab267,null))[_0x4add('0x25')](saveUpdates(_0x353ebc[_0x4add('0x46')],null))[_0x4add('0x25')](respondWithResult(_0x5ab267,null))[_0x4add('0x41')](handleError(_0x5ab267,null));};exports[_0x4add('0x26')]=function(_0x1e8a93,_0x5599fb){return db['Automation'][_0x4add('0x47')]({'where':{'id':_0x1e8a93[_0x4add('0x43')]['id']}})['then'](handleEntityNotFound(_0x5599fb,null))[_0x4add('0x25')](removeEntity(_0x5599fb,null))[_0x4add('0x41')](handleError(_0x5599fb,null));};exports['addConditions']=function(_0x366852,_0xf4a85e,_0x1e61bf){return db[_0x4add('0x48')]['find']({'where':{'id':_0x366852[_0x4add('0x43')]['id']}})[_0x4add('0x25')](handleEntityNotFound(_0xf4a85e,null))['then'](function(_0x284f38){if(_0x284f38){return _0x284f38['addConditions'](_0x366852[_0x4add('0x46')][_0x4add('0x49')],_[_0x4add('0x4a')](_0x366852['body'],[_0x4add('0x49'),'id'])||{});}})[_0x4add('0x25')](respondWithResult(_0xf4a85e,null))[_0x4add('0x41')](handleError(_0xf4a85e,null));};exports[_0x4add('0x4b')]=function(_0x37e37d,_0x57af9c,_0x46f6d1){var _0x197823={};var _0x2340fd={};var _0x5a18f9;var _0x200564;return db[_0x4add('0x2a')][_0x4add('0x4c')]({'where':{'id':_0x37e37d[_0x4add('0x43')]['id']}})['then'](handleEntityNotFound(_0x57af9c,null))['then'](function(_0x13e5bb){if(_0x13e5bb){_0x5a18f9=_0x13e5bb;_0x2340fd[_0x4add('0x2f')]=_['keys'](db[_0x4add('0x48')][_0x4add('0x2b')]);_0x2340fd['query']=_[_0x4add('0x30')](_0x37e37d[_0x4add('0x31')]);_0x2340fd['filters']=_[_0x4add('0x33')](_0x2340fd[_0x4add('0x2f')],_0x2340fd[_0x4add('0x31')]);_0x197823[_0x4add('0x35')]=_[_0x4add('0x33')](_0x2340fd['model'],qs[_0x4add('0x34')](_0x37e37d['query'][_0x4add('0x34')]));_0x197823[_0x4add('0x35')]=_0x197823[_0x4add('0x35')]['length']?_0x197823[_0x4add('0x35')]:_0x2340fd[_0x4add('0x2f')];_0x197823[_0x4add('0x37')]=qs[_0x4add('0x38')](_0x37e37d[_0x4add('0x31')][_0x4add('0x38')]);_0x197823[_0x4add('0x39')]=qs[_0x4add('0x32')](_['pick'](_0x37e37d['query'],_0x2340fd[_0x4add('0x32')]));if(_0x37e37d[_0x4add('0x31')]['filter']){_0x197823[_0x4add('0x39')]=_[_0x4add('0x3c')](_0x197823[_0x4add('0x39')],{'$or':_[_0x4add('0x29')](_0x197823[_0x4add('0x35')],function(_0xe7044f){var _0x4a4a9e={};_0x4a4a9e[_0xe7044f]={'$like':'%'+_0x37e37d[_0x4add('0x31')][_0x4add('0x3b')]+'%'};return _0x4a4a9e;})});}_0x197823=_[_0x4add('0x3c')]({},_0x197823,_0x37e37d['options']);return _0x5a18f9[_0x4add('0x4b')](_0x197823);}})[_0x4add('0x25')](function(_0x548753){if(_0x548753){_0x200564=_0x548753[_0x4add('0x44')];if(!_0x37e37d[_0x4add('0x31')][_0x4add('0x4d')](_0x4add('0x36'))){_0x197823[_0x4add('0x1f')]=qs[_0x4add('0x1f')](_0x37e37d[_0x4add('0x31')][_0x4add('0x1f')]);_0x197823[_0x4add('0x1d')]=qs[_0x4add('0x1d')](_0x37e37d['query']['offset']);}return _0x5a18f9[_0x4add('0x4b')](_0x197823);}})[_0x4add('0x25')](function(_0x432e84){if(_0x432e84){return _0x432e84?{'count':_0x200564,'rows':_0x432e84}:null;}})['then'](respondWithResult(_0x57af9c,null))['catch'](handleError(_0x57af9c,null));};exports[_0x4add('0x4e')]=function(_0x3674c7,_0x33e499,_0x80828d){return db[_0x4add('0x4f')][_0x4add('0x47')]({'where':{'id':_0x3674c7['params']['id']}})[_0x4add('0x25')](handleEntityNotFound(_0x33e499,null))[_0x4add('0x25')](function(_0x5dd1ab){if(_0x5dd1ab){return _0x5dd1ab['addActions'](_0x3674c7['body'][_0x4add('0x49')],_[_0x4add('0x4a')](_0x3674c7[_0x4add('0x46')],[_0x4add('0x49'),'id'])||{});}})['then'](respondWithResult(_0x33e499,null))[_0x4add('0x41')](handleError(_0x33e499,null));};exports['getActions']=function(_0xab3e90,_0x417347,_0x105471){var _0x261bf1={};var _0x5597ee={};var _0x3cb33f;var _0x469102;return db[_0x4add('0x2a')]['findOne']({'where':{'id':_0xab3e90['params']['id']}})[_0x4add('0x25')](handleEntityNotFound(_0x417347,null))[_0x4add('0x25')](function(_0x4fba7c){if(_0x4fba7c){_0x3cb33f=_0x4fba7c;_0x5597ee['model']=_[_0x4add('0x30')](db[_0x4add('0x4f')][_0x4add('0x2b')]);_0x5597ee[_0x4add('0x31')]=_[_0x4add('0x30')](_0xab3e90[_0x4add('0x31')]);_0x5597ee['filters']=_[_0x4add('0x33')](_0x5597ee[_0x4add('0x2f')],_0x5597ee[_0x4add('0x31')]);_0x261bf1[_0x4add('0x35')]=_[_0x4add('0x33')](_0x5597ee['model'],qs[_0x4add('0x34')](_0xab3e90[_0x4add('0x31')]['fields']));_0x261bf1[_0x4add('0x35')]=_0x261bf1[_0x4add('0x35')][_0x4add('0x44')]?_0x261bf1[_0x4add('0x35')]:_0x5597ee['model'];_0x261bf1[_0x4add('0x37')]=qs[_0x4add('0x38')](_0xab3e90['query'][_0x4add('0x38')]);_0x261bf1[_0x4add('0x39')]=qs[_0x4add('0x32')](_[_0x4add('0x3a')](_0xab3e90[_0x4add('0x31')],_0x5597ee[_0x4add('0x32')]));if(_0xab3e90['query']['filter']){_0x261bf1[_0x4add('0x39')]=_[_0x4add('0x3c')](_0x261bf1['where'],{'$or':_[_0x4add('0x29')](_0x261bf1['attributes'],function(_0x622299){var _0x471def={};_0x471def[_0x622299]={'$like':'%'+_0xab3e90[_0x4add('0x31')]['filter']+'%'};return _0x471def;})});}_0x261bf1=_[_0x4add('0x3c')]({},_0x261bf1,_0xab3e90[_0x4add('0x50')]);return _0x3cb33f['getActions'](_0x261bf1);}})[_0x4add('0x25')](function(_0x25c6f1){if(_0x25c6f1){_0x469102=_0x25c6f1[_0x4add('0x44')];if(!_0xab3e90[_0x4add('0x31')][_0x4add('0x4d')](_0x4add('0x36'))){_0x261bf1[_0x4add('0x1f')]=qs[_0x4add('0x1f')](_0xab3e90[_0x4add('0x31')][_0x4add('0x1f')]);_0x261bf1[_0x4add('0x1d')]=qs[_0x4add('0x1d')](_0xab3e90[_0x4add('0x31')][_0x4add('0x1d')]);}return _0x3cb33f[_0x4add('0x51')](_0x261bf1);}})[_0x4add('0x25')](function(_0x428586){if(_0x428586){return _0x428586?{'count':_0x469102,'rows':_0x428586}:null;}})[_0x4add('0x25')](respondWithResult(_0x417347,null))[_0x4add('0x41')](handleError(_0x417347,null));};