Built motion from commit da617fac.|2.6.6
[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 _0x8fad=['create','body','Condition','addConditions','ids','omit','getConditions','Action','getActions','pick','eml-format','rimraf','zip-dir','fast-json-patch','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','save','update','then','destroy','error','name','map','rawAttributes','fieldName','type','key','model','keys','filters','intersection','attributes','length','query','hasOwnProperty','nolimit','order','sort','where','filter','merge','VIRTUAL','options','includeAll','findAll','rows','catch','show','params','fields','include','Automation','find'];(function(_0x50007c,_0x1cbf11){var _0x5c1ec7=function(_0x52d038){while(--_0x52d038){_0x50007c['push'](_0x50007c['shift']());}};_0x5c1ec7(++_0x1cbf11);}(_0x8fad,0x1a4));var _0xd8fa=function(_0x19e540,_0x597c37){_0x19e540=_0x19e540-0x0;var _0x2fefb6=_0x8fad[_0x19e540];return _0x2fefb6;};'use strict';var emlformat=require(_0xd8fa('0x0'));var rimraf=require(_0xd8fa('0x1'));var zipdir=require(_0xd8fa('0x2'));var jsonpatch=require(_0xd8fa('0x3'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0xd8fa('0x4'));var Mustache=require(_0xd8fa('0x5'));var util=require('util');var path=require(_0xd8fa('0x6'));var sox=require(_0xd8fa('0x7'));var csv=require(_0xd8fa('0x8'));var ejs=require(_0xd8fa('0x9'));var fs=require('fs');var fs_extra=require(_0xd8fa('0xa'));var _=require(_0xd8fa('0xb'));var squel=require(_0xd8fa('0xc'));var crypto=require(_0xd8fa('0xd'));var jsforce=require(_0xd8fa('0xe'));var deskjs=require(_0xd8fa('0xf'));var toCsv=require(_0xd8fa('0x8'));var querystring=require(_0xd8fa('0x10'));var Papa=require(_0xd8fa('0x11'));var Redis=require('ioredis');var authService=require(_0xd8fa('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0xd8fa('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xd8fa('0x14'))('api');var utils=require(_0xd8fa('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0xd8fa('0x16'));var db=require(_0xd8fa('0x17'))['db'];function respondWithStatusCode(_0x51c64b,_0x272548){_0x272548=_0x272548||0xcc;return function(_0x35d263){if(_0x35d263){return _0x51c64b[_0xd8fa('0x18')](_0x272548);}return _0x51c64b[_0xd8fa('0x19')](_0x272548)[_0xd8fa('0x1a')]();};}function respondWithResult(_0x246819,_0xfaec91){_0xfaec91=_0xfaec91||0xc8;return function(_0x550da5){if(_0x550da5){return _0x246819[_0xd8fa('0x19')](_0xfaec91)[_0xd8fa('0x1b')](_0x550da5);}};}function respondWithFilteredResult(_0x42dc5e,_0x3afa46){return function(_0x3e65e3){if(_0x3e65e3){var _0x1d1afb=typeof _0x3afa46[_0xd8fa('0x1c')]===_0xd8fa('0x1d')&&typeof _0x3afa46[_0xd8fa('0x1e')]===_0xd8fa('0x1d');var _0x468056=_0x3e65e3[_0xd8fa('0x1f')];var _0x48a019=_0x1d1afb?0x0:_0x3afa46['offset'];var _0x54f28d=_0x1d1afb?_0x3e65e3[_0xd8fa('0x1f')]:_0x3afa46[_0xd8fa('0x1c')]+_0x3afa46[_0xd8fa('0x1e')];var _0x313d93;if(_0x54f28d>=_0x468056){_0x54f28d=_0x468056;_0x313d93=0xc8;}else{_0x313d93=0xce;}_0x42dc5e['status'](_0x313d93);return _0x42dc5e[_0xd8fa('0x20')](_0xd8fa('0x21'),_0x48a019+'-'+_0x54f28d+'/'+_0x468056)[_0xd8fa('0x1b')](_0x3e65e3);}return null;};}function patchUpdates(_0x33f94a){return function(_0x3d28c1){try{jsonpatch[_0xd8fa('0x22')](_0x3d28c1,_0x33f94a,!![]);}catch(_0x105286){return BPromise['reject'](_0x105286);}return _0x3d28c1[_0xd8fa('0x23')]();};}function saveUpdates(_0x117f93,_0x37b27b){return function(_0x54e737){if(_0x54e737){return _0x54e737[_0xd8fa('0x24')](_0x117f93)[_0xd8fa('0x25')](function(_0x16e7dc){return _0x16e7dc;});}return null;};}function removeEntity(_0x222c34,_0x55dd27){return function(_0x4e7106){if(_0x4e7106){return _0x4e7106[_0xd8fa('0x26')]()['then'](function(){_0x222c34[_0xd8fa('0x19')](0xcc)[_0xd8fa('0x1a')]();});}};}function handleEntityNotFound(_0x3d679e,_0x2f4b30){return function(_0x5c535f){if(!_0x5c535f){_0x3d679e['sendStatus'](0x194);}return _0x5c535f;};}function handleError(_0x55967c,_0x365982){_0x365982=_0x365982||0x1f4;return function(_0x12ba4f){logger[_0xd8fa('0x27')](_0x12ba4f['stack']);if(_0x12ba4f[_0xd8fa('0x28')]){delete _0x12ba4f[_0xd8fa('0x28')];}_0x55967c[_0xd8fa('0x19')](_0x365982)['send'](_0x12ba4f);};}exports['index']=function(_0x5b37a3,_0x53f446){var _0x23711d={},_0x50e99f={},_0x3d061e={'count':0x0,'rows':[]};var _0xfd6ac=_[_0xd8fa('0x29')](db['Automation'][_0xd8fa('0x2a')],function(_0x5209d7){return{'name':_0x5209d7[_0xd8fa('0x2b')],'type':_0x5209d7[_0xd8fa('0x2c')][_0xd8fa('0x2d')]};});_0x50e99f[_0xd8fa('0x2e')]=_[_0xd8fa('0x29')](_0xfd6ac,_0xd8fa('0x28'));_0x50e99f['query']=_[_0xd8fa('0x2f')](_0x5b37a3['query']);_0x50e99f[_0xd8fa('0x30')]=_[_0xd8fa('0x31')](_0x50e99f['model'],_0x50e99f['query']);_0x23711d['attributes']=_[_0xd8fa('0x31')](_0x50e99f[_0xd8fa('0x2e')],qs['fields'](_0x5b37a3['query']['fields']));_0x23711d['attributes']=_0x23711d[_0xd8fa('0x32')][_0xd8fa('0x33')]?_0x23711d[_0xd8fa('0x32')]:_0x50e99f['model'];if(!_0x5b37a3[_0xd8fa('0x34')][_0xd8fa('0x35')](_0xd8fa('0x36'))){_0x23711d['limit']=qs[_0xd8fa('0x1e')](_0x5b37a3[_0xd8fa('0x34')][_0xd8fa('0x1e')]);_0x23711d[_0xd8fa('0x1c')]=qs[_0xd8fa('0x1c')](_0x5b37a3[_0xd8fa('0x34')][_0xd8fa('0x1c')]);}_0x23711d[_0xd8fa('0x37')]=qs[_0xd8fa('0x38')](_0x5b37a3[_0xd8fa('0x34')][_0xd8fa('0x38')]);_0x23711d[_0xd8fa('0x39')]=qs[_0xd8fa('0x30')](_['pick'](_0x5b37a3[_0xd8fa('0x34')],_0x50e99f[_0xd8fa('0x30')]),_0xfd6ac);if(_0x5b37a3['query'][_0xd8fa('0x3a')]){_0x23711d[_0xd8fa('0x39')]=_[_0xd8fa('0x3b')](_0x23711d[_0xd8fa('0x39')],{'$or':_['map'](_0xfd6ac,function(_0x2ac500){if(_0x2ac500[_0xd8fa('0x2c')]!==_0xd8fa('0x3c')){var _0x5726cc={};_0x5726cc[_0x2ac500['name']]={'$like':'%'+_0x5b37a3[_0xd8fa('0x34')][_0xd8fa('0x3a')]+'%'};return _0x5726cc;}})});}_0x23711d=_[_0xd8fa('0x3b')]({},_0x23711d,_0x5b37a3[_0xd8fa('0x3d')]);var _0x650ea7={'where':_0x23711d[_0xd8fa('0x39')]};return db['Automation'][_0xd8fa('0x1f')](_0x650ea7)[_0xd8fa('0x25')](function(_0x18476a){_0x3d061e['count']=_0x18476a;if(_0x5b37a3[_0xd8fa('0x34')][_0xd8fa('0x3e')]){_0x23711d['include']=[{'all':!![]}];}return db['Automation'][_0xd8fa('0x3f')](_0x23711d);})[_0xd8fa('0x25')](function(_0x209e71){_0x3d061e[_0xd8fa('0x40')]=_0x209e71;return _0x3d061e;})[_0xd8fa('0x25')](respondWithFilteredResult(_0x53f446,_0x23711d))[_0xd8fa('0x41')](handleError(_0x53f446,null));};exports[_0xd8fa('0x42')]=function(_0x83eb25,_0x4702a2){var _0x5269fd={'raw':![],'where':{'id':_0x83eb25[_0xd8fa('0x43')]['id']}},_0x3c2dc5={};_0x3c2dc5[_0xd8fa('0x2e')]=_[_0xd8fa('0x2f')](db['Automation'][_0xd8fa('0x2a')]);_0x3c2dc5[_0xd8fa('0x34')]=_['keys'](_0x83eb25[_0xd8fa('0x34')]);_0x3c2dc5['filters']=_[_0xd8fa('0x31')](_0x3c2dc5['model'],_0x3c2dc5[_0xd8fa('0x34')]);_0x5269fd[_0xd8fa('0x32')]=_[_0xd8fa('0x31')](_0x3c2dc5[_0xd8fa('0x2e')],qs[_0xd8fa('0x44')](_0x83eb25[_0xd8fa('0x34')][_0xd8fa('0x44')]));_0x5269fd[_0xd8fa('0x32')]=_0x5269fd[_0xd8fa('0x32')][_0xd8fa('0x33')]?_0x5269fd['attributes']:_0x3c2dc5[_0xd8fa('0x2e')];if(_0x83eb25[_0xd8fa('0x34')]['includeAll']){_0x5269fd[_0xd8fa('0x45')]=[{'all':!![]}];}_0x5269fd=_[_0xd8fa('0x3b')]({},_0x5269fd,_0x83eb25[_0xd8fa('0x3d')]);return db[_0xd8fa('0x46')][_0xd8fa('0x47')](_0x5269fd)[_0xd8fa('0x25')](handleEntityNotFound(_0x4702a2,null))[_0xd8fa('0x25')](respondWithResult(_0x4702a2,null))[_0xd8fa('0x41')](handleError(_0x4702a2,null));};exports['create']=function(_0x18840e,_0x48887b){return db[_0xd8fa('0x46')][_0xd8fa('0x48')](_0x18840e[_0xd8fa('0x49')],{})['then'](respondWithResult(_0x48887b,0xc9))[_0xd8fa('0x41')](handleError(_0x48887b,null));};exports[_0xd8fa('0x24')]=function(_0x3725fb,_0x568930){if(_0x3725fb['body']['id']){delete _0x3725fb['body']['id'];}return db[_0xd8fa('0x46')]['find']({'where':{'id':_0x3725fb[_0xd8fa('0x43')]['id']}})['then'](handleEntityNotFound(_0x568930,null))['then'](saveUpdates(_0x3725fb[_0xd8fa('0x49')],null))[_0xd8fa('0x25')](respondWithResult(_0x568930,null))[_0xd8fa('0x41')](handleError(_0x568930,null));};exports['destroy']=function(_0x3428a1,_0x870a57){return db[_0xd8fa('0x46')][_0xd8fa('0x47')]({'where':{'id':_0x3428a1[_0xd8fa('0x43')]['id']}})[_0xd8fa('0x25')](handleEntityNotFound(_0x870a57,null))[_0xd8fa('0x25')](removeEntity(_0x870a57,null))[_0xd8fa('0x41')](handleError(_0x870a57,null));};exports['addConditions']=function(_0x1294f5,_0x3b487a,_0xf5b97e){return db[_0xd8fa('0x4a')]['find']({'where':{'id':_0x1294f5[_0xd8fa('0x43')]['id']}})[_0xd8fa('0x25')](handleEntityNotFound(_0x3b487a,null))[_0xd8fa('0x25')](function(_0x4d0d5a){if(_0x4d0d5a){return _0x4d0d5a[_0xd8fa('0x4b')](_0x1294f5[_0xd8fa('0x49')][_0xd8fa('0x4c')],_[_0xd8fa('0x4d')](_0x1294f5[_0xd8fa('0x49')],[_0xd8fa('0x4c'),'id'])||{});}})[_0xd8fa('0x25')](respondWithResult(_0x3b487a,null))[_0xd8fa('0x41')](handleError(_0x3b487a,null));};exports['getConditions']=function(_0x306871,_0x304580,_0x1ef13f){var _0x403c7f={};var _0x2608be={};var _0x5462b8;var _0xfa3e8a;return db[_0xd8fa('0x46')]['findOne']({'where':{'id':_0x306871[_0xd8fa('0x43')]['id']}})[_0xd8fa('0x25')](handleEntityNotFound(_0x304580,null))[_0xd8fa('0x25')](function(_0x56f4dc){if(_0x56f4dc){_0x5462b8=_0x56f4dc;_0x2608be[_0xd8fa('0x2e')]=_['keys'](db['Condition'][_0xd8fa('0x2a')]);_0x2608be[_0xd8fa('0x34')]=_['keys'](_0x306871[_0xd8fa('0x34')]);_0x2608be[_0xd8fa('0x30')]=_[_0xd8fa('0x31')](_0x2608be[_0xd8fa('0x2e')],_0x2608be['query']);_0x403c7f['attributes']=_['intersection'](_0x2608be[_0xd8fa('0x2e')],qs['fields'](_0x306871[_0xd8fa('0x34')][_0xd8fa('0x44')]));_0x403c7f[_0xd8fa('0x32')]=_0x403c7f[_0xd8fa('0x32')][_0xd8fa('0x33')]?_0x403c7f[_0xd8fa('0x32')]:_0x2608be[_0xd8fa('0x2e')];_0x403c7f[_0xd8fa('0x37')]=qs['sort'](_0x306871[_0xd8fa('0x34')]['sort']);_0x403c7f[_0xd8fa('0x39')]=qs[_0xd8fa('0x30')](_['pick'](_0x306871['query'],_0x2608be[_0xd8fa('0x30')]));if(_0x306871[_0xd8fa('0x34')]['filter']){_0x403c7f[_0xd8fa('0x39')]=_[_0xd8fa('0x3b')](_0x403c7f['where'],{'$or':_['map'](_0x403c7f[_0xd8fa('0x32')],function(_0x445b25){var _0x18c74f={};_0x18c74f[_0x445b25]={'$like':'%'+_0x306871[_0xd8fa('0x34')][_0xd8fa('0x3a')]+'%'};return _0x18c74f;})});}_0x403c7f=_[_0xd8fa('0x3b')]({},_0x403c7f,_0x306871[_0xd8fa('0x3d')]);return _0x5462b8[_0xd8fa('0x4e')](_0x403c7f);}})[_0xd8fa('0x25')](function(_0x25d758){if(_0x25d758){_0xfa3e8a=_0x25d758['length'];if(!_0x306871['query'][_0xd8fa('0x35')](_0xd8fa('0x36'))){_0x403c7f['limit']=qs['limit'](_0x306871[_0xd8fa('0x34')][_0xd8fa('0x1e')]);_0x403c7f['offset']=qs[_0xd8fa('0x1c')](_0x306871['query'][_0xd8fa('0x1c')]);}return _0x5462b8[_0xd8fa('0x4e')](_0x403c7f);}})[_0xd8fa('0x25')](function(_0x2e2d32){if(_0x2e2d32){return _0x2e2d32?{'count':_0xfa3e8a,'rows':_0x2e2d32}:null;}})[_0xd8fa('0x25')](respondWithResult(_0x304580,null))[_0xd8fa('0x41')](handleError(_0x304580,null));};exports['addActions']=function(_0x5676a7,_0x22f268,_0xb14774){return db[_0xd8fa('0x4f')][_0xd8fa('0x47')]({'where':{'id':_0x5676a7['params']['id']}})[_0xd8fa('0x25')](handleEntityNotFound(_0x22f268,null))[_0xd8fa('0x25')](function(_0x54c9c9){if(_0x54c9c9){return _0x54c9c9['addActions'](_0x5676a7[_0xd8fa('0x49')]['ids'],_[_0xd8fa('0x4d')](_0x5676a7[_0xd8fa('0x49')],[_0xd8fa('0x4c'),'id'])||{});}})[_0xd8fa('0x25')](respondWithResult(_0x22f268,null))[_0xd8fa('0x41')](handleError(_0x22f268,null));};exports[_0xd8fa('0x50')]=function(_0x2f38d9,_0x639d0,_0x3d3040){var _0x533caf={};var _0x248982={};var _0x309b9a;var _0x46661a;return db[_0xd8fa('0x46')]['findOne']({'where':{'id':_0x2f38d9[_0xd8fa('0x43')]['id']}})['then'](handleEntityNotFound(_0x639d0,null))['then'](function(_0x45421a){if(_0x45421a){_0x309b9a=_0x45421a;_0x248982[_0xd8fa('0x2e')]=_[_0xd8fa('0x2f')](db[_0xd8fa('0x4f')][_0xd8fa('0x2a')]);_0x248982[_0xd8fa('0x34')]=_['keys'](_0x2f38d9[_0xd8fa('0x34')]);_0x248982[_0xd8fa('0x30')]=_[_0xd8fa('0x31')](_0x248982['model'],_0x248982['query']);_0x533caf[_0xd8fa('0x32')]=_[_0xd8fa('0x31')](_0x248982['model'],qs[_0xd8fa('0x44')](_0x2f38d9[_0xd8fa('0x34')][_0xd8fa('0x44')]));_0x533caf[_0xd8fa('0x32')]=_0x533caf['attributes'][_0xd8fa('0x33')]?_0x533caf[_0xd8fa('0x32')]:_0x248982[_0xd8fa('0x2e')];_0x533caf[_0xd8fa('0x37')]=qs[_0xd8fa('0x38')](_0x2f38d9['query'][_0xd8fa('0x38')]);_0x533caf['where']=qs[_0xd8fa('0x30')](_[_0xd8fa('0x51')](_0x2f38d9[_0xd8fa('0x34')],_0x248982[_0xd8fa('0x30')]));if(_0x2f38d9['query'][_0xd8fa('0x3a')]){_0x533caf[_0xd8fa('0x39')]=_[_0xd8fa('0x3b')](_0x533caf['where'],{'$or':_[_0xd8fa('0x29')](_0x533caf[_0xd8fa('0x32')],function(_0x428d50){var _0x370eff={};_0x370eff[_0x428d50]={'$like':'%'+_0x2f38d9[_0xd8fa('0x34')][_0xd8fa('0x3a')]+'%'};return _0x370eff;})});}_0x533caf=_['merge']({},_0x533caf,_0x2f38d9['options']);return _0x309b9a['getActions'](_0x533caf);}})[_0xd8fa('0x25')](function(_0xc8e648){if(_0xc8e648){_0x46661a=_0xc8e648[_0xd8fa('0x33')];if(!_0x2f38d9[_0xd8fa('0x34')]['hasOwnProperty'](_0xd8fa('0x36'))){_0x533caf[_0xd8fa('0x1e')]=qs[_0xd8fa('0x1e')](_0x2f38d9['query'][_0xd8fa('0x1e')]);_0x533caf[_0xd8fa('0x1c')]=qs[_0xd8fa('0x1c')](_0x2f38d9[_0xd8fa('0x34')]['offset']);}return _0x309b9a[_0xd8fa('0x50')](_0x533caf);}})[_0xd8fa('0x25')](function(_0x118ffc){if(_0x118ffc){return _0x118ffc?{'count':_0x46661a,'rows':_0x118ffc}:null;}})[_0xd8fa('0x25')](respondWithResult(_0x639d0,null))['catch'](handleError(_0x639d0,null));};