bfe5e299228598b68e38aed45a1838723160a9dc
[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 _0xc4d7=['fields','length','hasOwnProperty','nolimit','sort','where','pick','filter','merge','VIRTUAL','options','Automation','includeAll','include','findAll','rows','catch','show','params','find','create','body','addConditions','Condition','ids','omit','findOne','order','getConditions','Action','addActions','getActions','html-pdf','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','sox','to-csv','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','end','json','offset','limit','status','set','Content-Range','apply','reject','save','update','then','destroy','error','index','map','rawAttributes','fieldName','type','key','model','name','keys','query','filters','intersection','attributes'];(function(_0x126b87,_0x2febe3){var _0x58f020=function(_0x8cf789){while(--_0x8cf789){_0x126b87['push'](_0x126b87['shift']());}};_0x58f020(++_0x2febe3);}(_0xc4d7,0x1d3));var _0x7c4d=function(_0x1facfa,_0x1acf7d){_0x1facfa=_0x1facfa-0x0;var _0x9ec701=_0xc4d7[_0x1facfa];return _0x9ec701;};'use strict';var pdf=require(_0x7c4d('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x7c4d('0x1'));var zipdir=require(_0x7c4d('0x2'));var jsonpatch=require(_0x7c4d('0x3'));var rp=require(_0x7c4d('0x4'));var moment=require(_0x7c4d('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x7c4d('0x6'));var util=require(_0x7c4d('0x7'));var path=require(_0x7c4d('0x8'));var sox=require(_0x7c4d('0x9'));var csv=require(_0x7c4d('0xa'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x7c4d('0xb'));var squel=require(_0x7c4d('0xc'));var crypto=require(_0x7c4d('0xd'));var jsforce=require(_0x7c4d('0xe'));var deskjs=require(_0x7c4d('0xf'));var toCsv=require(_0x7c4d('0xa'));var querystring=require(_0x7c4d('0x10'));var Papa=require(_0x7c4d('0x11'));var Redis=require(_0x7c4d('0x12'));var authService=require(_0x7c4d('0x13'));var qs=require('../../components/parsers/qs');var as=require(_0x7c4d('0x14'));var hardwareService=require(_0x7c4d('0x15'));var logger=require(_0x7c4d('0x16'))(_0x7c4d('0x17'));var utils=require(_0x7c4d('0x18'));var config=require(_0x7c4d('0x19'));var db=require(_0x7c4d('0x1a'))['db'];function respondWithStatusCode(_0x509ce5,_0x57f90e){_0x57f90e=_0x57f90e||0xcc;return function(_0x47e853){if(_0x47e853){return _0x509ce5[_0x7c4d('0x1b')](_0x57f90e);}return _0x509ce5['status'](_0x57f90e)[_0x7c4d('0x1c')]();};}function respondWithResult(_0x6544a1,_0x12265c){_0x12265c=_0x12265c||0xc8;return function(_0x34e940){if(_0x34e940){return _0x6544a1['status'](_0x12265c)[_0x7c4d('0x1d')](_0x34e940);}};}function respondWithFilteredResult(_0x5c6eb7,_0x2eb61e){return function(_0x51d07a){if(_0x51d07a){var _0x4ebffa=_0x51d07a['count'],_0x48c57e=_0x2eb61e['offset'],_0x3ad7fd=_0x2eb61e[_0x7c4d('0x1e')]+_0x2eb61e[_0x7c4d('0x1f')],_0x20ad37;if(_0x3ad7fd>=_0x4ebffa){_0x3ad7fd=_0x4ebffa;_0x20ad37=0xc8;}else{_0x20ad37=0xce;}_0x5c6eb7[_0x7c4d('0x20')](_0x20ad37);return _0x5c6eb7[_0x7c4d('0x21')](_0x7c4d('0x22'),_0x48c57e+'-'+_0x3ad7fd+'/'+_0x4ebffa)[_0x7c4d('0x1d')](_0x51d07a);}return null;};}function patchUpdates(_0xd2a24f){return function(_0x2c914b){try{jsonpatch[_0x7c4d('0x23')](_0x2c914b,_0xd2a24f,!![]);}catch(_0x423346){return BPromise[_0x7c4d('0x24')](_0x423346);}return _0x2c914b[_0x7c4d('0x25')]();};}function saveUpdates(_0x331a1a,_0xdcffd3){return function(_0x12a558){if(_0x12a558){return _0x12a558[_0x7c4d('0x26')](_0x331a1a)[_0x7c4d('0x27')](function(_0x5310be){return _0x5310be;});}return null;};}function removeEntity(_0x37cd0c,_0x848ba5){return function(_0x150d16){if(_0x150d16){return _0x150d16[_0x7c4d('0x28')]()[_0x7c4d('0x27')](function(){_0x37cd0c[_0x7c4d('0x20')](0xcc)['end']();});}};}function handleEntityNotFound(_0x40e5f8,_0x5402bd){return function(_0x3d6105){if(!_0x3d6105){_0x40e5f8[_0x7c4d('0x1b')](0x194);}return _0x3d6105;};}function handleError(_0xaf2ff4,_0x265e27){_0x265e27=_0x265e27||0x1f4;return function(_0x261581){logger[_0x7c4d('0x29')](_0x261581['stack']);if(_0x261581['name']){delete _0x261581['name'];}_0xaf2ff4[_0x7c4d('0x20')](_0x265e27)['send'](_0x261581);};}exports[_0x7c4d('0x2a')]=function(_0x3c304b,_0x5dad8f){var _0x56f186={},_0x2e2eeb={},_0x1d29bc={'count':0x0,'rows':[]};var _0x4de0ba=_[_0x7c4d('0x2b')](db['Automation'][_0x7c4d('0x2c')],function(_0x3bd28b){return{'name':_0x3bd28b[_0x7c4d('0x2d')],'type':_0x3bd28b[_0x7c4d('0x2e')][_0x7c4d('0x2f')]};});_0x2e2eeb[_0x7c4d('0x30')]=_[_0x7c4d('0x2b')](_0x4de0ba,_0x7c4d('0x31'));_0x2e2eeb['query']=_[_0x7c4d('0x32')](_0x3c304b[_0x7c4d('0x33')]);_0x2e2eeb[_0x7c4d('0x34')]=_[_0x7c4d('0x35')](_0x2e2eeb[_0x7c4d('0x30')],_0x2e2eeb[_0x7c4d('0x33')]);_0x56f186[_0x7c4d('0x36')]=_[_0x7c4d('0x35')](_0x2e2eeb[_0x7c4d('0x30')],qs[_0x7c4d('0x37')](_0x3c304b[_0x7c4d('0x33')][_0x7c4d('0x37')]));_0x56f186['attributes']=_0x56f186[_0x7c4d('0x36')][_0x7c4d('0x38')]?_0x56f186[_0x7c4d('0x36')]:_0x2e2eeb[_0x7c4d('0x30')];if(!_0x3c304b['query'][_0x7c4d('0x39')](_0x7c4d('0x3a'))){_0x56f186['limit']=qs['limit'](_0x3c304b['query'][_0x7c4d('0x1f')]);_0x56f186[_0x7c4d('0x1e')]=qs[_0x7c4d('0x1e')](_0x3c304b[_0x7c4d('0x33')][_0x7c4d('0x1e')]);}_0x56f186['order']=qs['sort'](_0x3c304b['query'][_0x7c4d('0x3b')]);_0x56f186[_0x7c4d('0x3c')]=qs[_0x7c4d('0x34')](_[_0x7c4d('0x3d')](_0x3c304b[_0x7c4d('0x33')],_0x2e2eeb[_0x7c4d('0x34')]));if(_0x3c304b[_0x7c4d('0x33')][_0x7c4d('0x3e')]){_0x56f186[_0x7c4d('0x3c')]=_[_0x7c4d('0x3f')](_0x56f186[_0x7c4d('0x3c')],{'$or':_[_0x7c4d('0x2b')](_0x4de0ba,function(_0x521601){if(_0x521601[_0x7c4d('0x2e')]!==_0x7c4d('0x40')){var _0x30d181={};_0x30d181[_0x521601[_0x7c4d('0x31')]]={'$like':'%'+_0x3c304b[_0x7c4d('0x33')][_0x7c4d('0x3e')]+'%'};return _0x30d181;}})});}_0x56f186=_[_0x7c4d('0x3f')]({},_0x56f186,_0x3c304b[_0x7c4d('0x41')]);var _0x812738={'where':_0x56f186[_0x7c4d('0x3c')]};return db[_0x7c4d('0x42')]['count'](_0x812738)['then'](function(_0x329f35){_0x1d29bc['count']=_0x329f35;if(_0x3c304b['query'][_0x7c4d('0x43')]){_0x56f186[_0x7c4d('0x44')]=[{'all':!![]}];}return db[_0x7c4d('0x42')][_0x7c4d('0x45')](_0x56f186);})[_0x7c4d('0x27')](function(_0x1ff479){_0x1d29bc[_0x7c4d('0x46')]=_0x1ff479;return _0x1d29bc;})[_0x7c4d('0x27')](respondWithFilteredResult(_0x5dad8f,_0x56f186))[_0x7c4d('0x47')](handleError(_0x5dad8f,null));};exports[_0x7c4d('0x48')]=function(_0x5423bb,_0x37a902){var _0x8c664d={'raw':![],'where':{'id':_0x5423bb[_0x7c4d('0x49')]['id']}},_0x11582f={};_0x11582f[_0x7c4d('0x30')]=_[_0x7c4d('0x32')](db[_0x7c4d('0x42')]['rawAttributes']);_0x11582f[_0x7c4d('0x33')]=_[_0x7c4d('0x32')](_0x5423bb[_0x7c4d('0x33')]);_0x11582f[_0x7c4d('0x34')]=_[_0x7c4d('0x35')](_0x11582f['model'],_0x11582f[_0x7c4d('0x33')]);_0x8c664d[_0x7c4d('0x36')]=_[_0x7c4d('0x35')](_0x11582f[_0x7c4d('0x30')],qs[_0x7c4d('0x37')](_0x5423bb[_0x7c4d('0x33')][_0x7c4d('0x37')]));_0x8c664d[_0x7c4d('0x36')]=_0x8c664d['attributes'][_0x7c4d('0x38')]?_0x8c664d[_0x7c4d('0x36')]:_0x11582f[_0x7c4d('0x30')];if(_0x5423bb[_0x7c4d('0x33')]['includeAll']){_0x8c664d[_0x7c4d('0x44')]=[{'all':!![]}];}_0x8c664d=_[_0x7c4d('0x3f')]({},_0x8c664d,_0x5423bb['options']);return db[_0x7c4d('0x42')][_0x7c4d('0x4a')](_0x8c664d)[_0x7c4d('0x27')](handleEntityNotFound(_0x37a902,null))[_0x7c4d('0x27')](respondWithResult(_0x37a902,null))['catch'](handleError(_0x37a902,null));};exports[_0x7c4d('0x4b')]=function(_0x1ce290,_0x2448fe){return db['Automation'][_0x7c4d('0x4b')](_0x1ce290['body'],{})[_0x7c4d('0x27')](respondWithResult(_0x2448fe,0xc9))['catch'](handleError(_0x2448fe,null));};exports[_0x7c4d('0x26')]=function(_0x1adf21,_0x48dcb3){if(_0x1adf21[_0x7c4d('0x4c')]['id']){delete _0x1adf21[_0x7c4d('0x4c')]['id'];}return db[_0x7c4d('0x42')][_0x7c4d('0x4a')]({'where':{'id':_0x1adf21[_0x7c4d('0x49')]['id']}})['then'](handleEntityNotFound(_0x48dcb3,null))['then'](saveUpdates(_0x1adf21['body'],null))['then'](respondWithResult(_0x48dcb3,null))['catch'](handleError(_0x48dcb3,null));};exports[_0x7c4d('0x28')]=function(_0x8d4870,_0x2b2034){return db[_0x7c4d('0x42')][_0x7c4d('0x4a')]({'where':{'id':_0x8d4870['params']['id']}})[_0x7c4d('0x27')](handleEntityNotFound(_0x2b2034,null))[_0x7c4d('0x27')](removeEntity(_0x2b2034,null))[_0x7c4d('0x47')](handleError(_0x2b2034,null));};exports[_0x7c4d('0x4d')]=function(_0x5c176b,_0x62ce97,_0x36a23c){return db[_0x7c4d('0x4e')]['find']({'where':{'id':_0x5c176b[_0x7c4d('0x49')]['id']}})[_0x7c4d('0x27')](handleEntityNotFound(_0x62ce97,null))[_0x7c4d('0x27')](function(_0x2123a0){if(_0x2123a0){return _0x2123a0[_0x7c4d('0x4d')](_0x5c176b[_0x7c4d('0x4c')][_0x7c4d('0x4f')],_[_0x7c4d('0x50')](_0x5c176b['body'],[_0x7c4d('0x4f'),'id'])||{});}})[_0x7c4d('0x27')](respondWithResult(_0x62ce97,null))['catch'](handleError(_0x62ce97,null));};exports['getConditions']=function(_0x11667f,_0x5a0b81,_0x3fe15c){var _0x3795c0={};var _0x4600af={};var _0x799d75;var _0x7beb2;return db['Automation'][_0x7c4d('0x51')]({'where':{'id':_0x11667f[_0x7c4d('0x49')]['id']}})[_0x7c4d('0x27')](handleEntityNotFound(_0x5a0b81,null))[_0x7c4d('0x27')](function(_0x2cc715){if(_0x2cc715){_0x799d75=_0x2cc715;_0x4600af[_0x7c4d('0x30')]=_['keys'](db[_0x7c4d('0x4e')][_0x7c4d('0x2c')]);_0x4600af[_0x7c4d('0x33')]=_[_0x7c4d('0x32')](_0x11667f[_0x7c4d('0x33')]);_0x4600af[_0x7c4d('0x34')]=_['intersection'](_0x4600af[_0x7c4d('0x30')],_0x4600af[_0x7c4d('0x33')]);_0x3795c0['attributes']=_[_0x7c4d('0x35')](_0x4600af['model'],qs[_0x7c4d('0x37')](_0x11667f['query'][_0x7c4d('0x37')]));_0x3795c0[_0x7c4d('0x36')]=_0x3795c0['attributes'][_0x7c4d('0x38')]?_0x3795c0[_0x7c4d('0x36')]:_0x4600af[_0x7c4d('0x30')];_0x3795c0[_0x7c4d('0x52')]=qs[_0x7c4d('0x3b')](_0x11667f[_0x7c4d('0x33')][_0x7c4d('0x3b')]);_0x3795c0[_0x7c4d('0x3c')]=qs[_0x7c4d('0x34')](_[_0x7c4d('0x3d')](_0x11667f[_0x7c4d('0x33')],_0x4600af[_0x7c4d('0x34')]));if(_0x11667f['query'][_0x7c4d('0x3e')]){_0x3795c0[_0x7c4d('0x3c')]=_[_0x7c4d('0x3f')](_0x3795c0[_0x7c4d('0x3c')],{'$or':_[_0x7c4d('0x2b')](_0x3795c0[_0x7c4d('0x36')],function(_0x217513){var _0x1eac94={};_0x1eac94[_0x217513]={'$like':'%'+_0x11667f[_0x7c4d('0x33')][_0x7c4d('0x3e')]+'%'};return _0x1eac94;})});}_0x3795c0=_[_0x7c4d('0x3f')]({},_0x3795c0,_0x11667f[_0x7c4d('0x41')]);return _0x799d75[_0x7c4d('0x53')](_0x3795c0);}})[_0x7c4d('0x27')](function(_0x98a589){if(_0x98a589){_0x7beb2=_0x98a589[_0x7c4d('0x38')];if(!_0x11667f[_0x7c4d('0x33')][_0x7c4d('0x39')]('nolimit')){_0x3795c0['limit']=qs[_0x7c4d('0x1f')](_0x11667f['query']['limit']);_0x3795c0[_0x7c4d('0x1e')]=qs[_0x7c4d('0x1e')](_0x11667f[_0x7c4d('0x33')][_0x7c4d('0x1e')]);}return _0x799d75[_0x7c4d('0x53')](_0x3795c0);}})[_0x7c4d('0x27')](function(_0x1be6c8){if(_0x1be6c8){return _0x1be6c8?{'count':_0x7beb2,'rows':_0x1be6c8}:null;}})[_0x7c4d('0x27')](respondWithResult(_0x5a0b81,null))['catch'](handleError(_0x5a0b81,null));};exports['addActions']=function(_0x2da5ff,_0x47f770,_0x40cdf0){return db[_0x7c4d('0x54')][_0x7c4d('0x4a')]({'where':{'id':_0x2da5ff[_0x7c4d('0x49')]['id']}})[_0x7c4d('0x27')](handleEntityNotFound(_0x47f770,null))[_0x7c4d('0x27')](function(_0x4322fe){if(_0x4322fe){return _0x4322fe[_0x7c4d('0x55')](_0x2da5ff['body'][_0x7c4d('0x4f')],_[_0x7c4d('0x50')](_0x2da5ff[_0x7c4d('0x4c')],[_0x7c4d('0x4f'),'id'])||{});}})[_0x7c4d('0x27')](respondWithResult(_0x47f770,null))[_0x7c4d('0x47')](handleError(_0x47f770,null));};exports[_0x7c4d('0x56')]=function(_0x627340,_0x5ef85b,_0x229b66){var _0x5524b0={};var _0x521375={};var _0x45523b;var _0x4ad1d0;return db['Automation'][_0x7c4d('0x51')]({'where':{'id':_0x627340[_0x7c4d('0x49')]['id']}})[_0x7c4d('0x27')](handleEntityNotFound(_0x5ef85b,null))[_0x7c4d('0x27')](function(_0x4b14dd){if(_0x4b14dd){_0x45523b=_0x4b14dd;_0x521375['model']=_[_0x7c4d('0x32')](db[_0x7c4d('0x54')][_0x7c4d('0x2c')]);_0x521375[_0x7c4d('0x33')]=_[_0x7c4d('0x32')](_0x627340['query']);_0x521375['filters']=_[_0x7c4d('0x35')](_0x521375['model'],_0x521375[_0x7c4d('0x33')]);_0x5524b0['attributes']=_[_0x7c4d('0x35')](_0x521375[_0x7c4d('0x30')],qs[_0x7c4d('0x37')](_0x627340['query'][_0x7c4d('0x37')]));_0x5524b0['attributes']=_0x5524b0[_0x7c4d('0x36')][_0x7c4d('0x38')]?_0x5524b0['attributes']:_0x521375['model'];_0x5524b0[_0x7c4d('0x52')]=qs[_0x7c4d('0x3b')](_0x627340[_0x7c4d('0x33')][_0x7c4d('0x3b')]);_0x5524b0[_0x7c4d('0x3c')]=qs['filters'](_[_0x7c4d('0x3d')](_0x627340[_0x7c4d('0x33')],_0x521375['filters']));if(_0x627340[_0x7c4d('0x33')][_0x7c4d('0x3e')]){_0x5524b0['where']=_[_0x7c4d('0x3f')](_0x5524b0[_0x7c4d('0x3c')],{'$or':_[_0x7c4d('0x2b')](_0x5524b0[_0x7c4d('0x36')],function(_0x51ba9f){var _0x58cd90={};_0x58cd90[_0x51ba9f]={'$like':'%'+_0x627340[_0x7c4d('0x33')][_0x7c4d('0x3e')]+'%'};return _0x58cd90;})});}_0x5524b0=_[_0x7c4d('0x3f')]({},_0x5524b0,_0x627340[_0x7c4d('0x41')]);return _0x45523b[_0x7c4d('0x56')](_0x5524b0);}})[_0x7c4d('0x27')](function(_0x1c3329){if(_0x1c3329){_0x4ad1d0=_0x1c3329[_0x7c4d('0x38')];if(!_0x627340['query'][_0x7c4d('0x39')]('nolimit')){_0x5524b0[_0x7c4d('0x1f')]=qs[_0x7c4d('0x1f')](_0x627340[_0x7c4d('0x33')][_0x7c4d('0x1f')]);_0x5524b0[_0x7c4d('0x1e')]=qs[_0x7c4d('0x1e')](_0x627340[_0x7c4d('0x33')][_0x7c4d('0x1e')]);}return _0x45523b['getActions'](_0x5524b0);}})['then'](function(_0xf036b7){if(_0xf036b7){return _0xf036b7?{'count':_0x4ad1d0,'rows':_0xf036b7}:null;}})[_0x7c4d('0x27')](respondWithResult(_0x5ef85b,null))[_0x7c4d('0x47')](handleError(_0x5ef85b,null));};