b3b6a64b1b7e93eb904b47bc28940ce09fd69441
[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 _0xa524=['reject','save','update','then','destroy','end','stack','name','index','map','Automation','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','findAll','rows','catch','include','create','body','params','find','addConditions','Condition','ids','omit','getConditions','findOne','addActions','Action','getActions','eml-format','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','papaparse','../../components/auth/service','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','json','limit','count','offset','apply'];(function(_0x5919a0,_0x3d3c9a){var _0x1ccfaa=function(_0x3de102){while(--_0x3de102){_0x5919a0['push'](_0x5919a0['shift']());}};_0x1ccfaa(++_0x3d3c9a);}(_0xa524,0x83));var _0x4a52=function(_0x33925b,_0x95cfc6){_0x33925b=_0x33925b-0x0;var _0x375e21=_0xa524[_0x33925b];return _0x375e21;};'use strict';var emlformat=require(_0x4a52('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x4a52('0x1'));var jsonpatch=require(_0x4a52('0x2'));var rp=require(_0x4a52('0x3'));var moment=require('moment');var BPromise=require(_0x4a52('0x4'));var Mustache=require(_0x4a52('0x5'));var util=require(_0x4a52('0x6'));var path=require('path');var sox=require(_0x4a52('0x7'));var csv=require(_0x4a52('0x8'));var ejs=require(_0x4a52('0x9'));var fs=require('fs');var fs_extra=require(_0x4a52('0xa'));var _=require(_0x4a52('0xb'));var squel=require(_0x4a52('0xc'));var crypto=require(_0x4a52('0xd'));var jsforce=require('jsforce');var deskjs=require(_0x4a52('0xe'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x4a52('0xf'));var Redis=require('ioredis');var authService=require(_0x4a52('0x10'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x4a52('0x11'))(_0x4a52('0x12'));var utils=require(_0x4a52('0x13'));var config=require(_0x4a52('0x14'));var licenseUtil=require('../../config/license/util');var db=require(_0x4a52('0x15'))['db'];function respondWithStatusCode(_0x299cfa,_0x5c940d){_0x5c940d=_0x5c940d||0xcc;return function(_0x1a2dc7){if(_0x1a2dc7){return _0x299cfa[_0x4a52('0x16')](_0x5c940d);}return _0x299cfa[_0x4a52('0x17')](_0x5c940d)['end']();};}function respondWithResult(_0x540d20,_0x33f74b){_0x33f74b=_0x33f74b||0xc8;return function(_0x5138b6){if(_0x5138b6){return _0x540d20[_0x4a52('0x17')](_0x33f74b)[_0x4a52('0x18')](_0x5138b6);}};}function respondWithFilteredResult(_0x247602,_0x1e589d){return function(_0x6806d5){if(_0x6806d5){var _0x4a53e3=typeof _0x1e589d['offset']==='undefined'&&typeof _0x1e589d[_0x4a52('0x19')]==='undefined';var _0x454c53=_0x6806d5[_0x4a52('0x1a')];var _0x440de4=_0x4a53e3?0x0:_0x1e589d[_0x4a52('0x1b')];var _0x5a772e=_0x4a53e3?_0x6806d5[_0x4a52('0x1a')]:_0x1e589d['offset']+_0x1e589d[_0x4a52('0x19')];var _0x30617b;if(_0x5a772e>=_0x454c53){_0x5a772e=_0x454c53;_0x30617b=0xc8;}else{_0x30617b=0xce;}_0x247602[_0x4a52('0x17')](_0x30617b);return _0x247602['set']('Content-Range',_0x440de4+'-'+_0x5a772e+'/'+_0x454c53)[_0x4a52('0x18')](_0x6806d5);}return null;};}function patchUpdates(_0x489627){return function(_0x46d07){try{jsonpatch[_0x4a52('0x1c')](_0x46d07,_0x489627,!![]);}catch(_0x3d6802){return BPromise[_0x4a52('0x1d')](_0x3d6802);}return _0x46d07[_0x4a52('0x1e')]();};}function saveUpdates(_0x25cb60,_0x3aeccd){return function(_0x51b755){if(_0x51b755){return _0x51b755[_0x4a52('0x1f')](_0x25cb60)[_0x4a52('0x20')](function(_0x2c280e){return _0x2c280e;});}return null;};}function removeEntity(_0x40cce4,_0x2910af){return function(_0x5774f2){if(_0x5774f2){return _0x5774f2[_0x4a52('0x21')]()['then'](function(){_0x40cce4['status'](0xcc)[_0x4a52('0x22')]();});}};}function handleEntityNotFound(_0x54c1e6,_0x3b4557){return function(_0x43ff7a){if(!_0x43ff7a){_0x54c1e6[_0x4a52('0x16')](0x194);}return _0x43ff7a;};}function handleError(_0x5a8180,_0x342d66){_0x342d66=_0x342d66||0x1f4;return function(_0x3b8abe){logger['error'](_0x3b8abe[_0x4a52('0x23')]);if(_0x3b8abe[_0x4a52('0x24')]){delete _0x3b8abe['name'];}_0x5a8180[_0x4a52('0x17')](_0x342d66)['send'](_0x3b8abe);};}exports[_0x4a52('0x25')]=function(_0x5e329d,_0x14f37d){var _0x5e8aba={},_0x228737={},_0x4c2a51={'count':0x0,'rows':[]};var _0x282bb6=_[_0x4a52('0x26')](db[_0x4a52('0x27')][_0x4a52('0x28')],function(_0x4ce016){return{'name':_0x4ce016[_0x4a52('0x29')],'type':_0x4ce016[_0x4a52('0x2a')][_0x4a52('0x2b')]};});_0x228737[_0x4a52('0x2c')]=_['map'](_0x282bb6,'name');_0x228737[_0x4a52('0x2d')]=_[_0x4a52('0x2e')](_0x5e329d['query']);_0x228737[_0x4a52('0x2f')]=_[_0x4a52('0x30')](_0x228737[_0x4a52('0x2c')],_0x228737['query']);_0x5e8aba['attributes']=_['intersection'](_0x228737[_0x4a52('0x2c')],qs[_0x4a52('0x31')](_0x5e329d['query'][_0x4a52('0x31')]));_0x5e8aba['attributes']=_0x5e8aba[_0x4a52('0x32')][_0x4a52('0x33')]?_0x5e8aba[_0x4a52('0x32')]:_0x228737[_0x4a52('0x2c')];if(!_0x5e329d[_0x4a52('0x2d')][_0x4a52('0x34')](_0x4a52('0x35'))){_0x5e8aba['limit']=qs[_0x4a52('0x19')](_0x5e329d[_0x4a52('0x2d')]['limit']);_0x5e8aba[_0x4a52('0x1b')]=qs[_0x4a52('0x1b')](_0x5e329d['query'][_0x4a52('0x1b')]);}_0x5e8aba[_0x4a52('0x36')]=qs[_0x4a52('0x37')](_0x5e329d[_0x4a52('0x2d')]['sort']);_0x5e8aba[_0x4a52('0x38')]=qs[_0x4a52('0x2f')](_[_0x4a52('0x39')](_0x5e329d['query'],_0x228737[_0x4a52('0x2f')]),_0x282bb6);if(_0x5e329d[_0x4a52('0x2d')][_0x4a52('0x3a')]){_0x5e8aba[_0x4a52('0x38')]=_[_0x4a52('0x3b')](_0x5e8aba[_0x4a52('0x38')],{'$or':_['map'](_0x282bb6,function(_0x51b940){if(_0x51b940[_0x4a52('0x2a')]!==_0x4a52('0x3c')){var _0xa9aab3={};_0xa9aab3[_0x51b940['name']]={'$like':'%'+_0x5e329d[_0x4a52('0x2d')]['filter']+'%'};return _0xa9aab3;}})});}_0x5e8aba=_[_0x4a52('0x3b')]({},_0x5e8aba,_0x5e329d[_0x4a52('0x3d')]);var _0x433fb5={'where':_0x5e8aba['where']};return db[_0x4a52('0x27')][_0x4a52('0x1a')](_0x433fb5)[_0x4a52('0x20')](function(_0x479f2b){_0x4c2a51[_0x4a52('0x1a')]=_0x479f2b;if(_0x5e329d[_0x4a52('0x2d')][_0x4a52('0x3e')]){_0x5e8aba['include']=[{'all':!![]}];}return db[_0x4a52('0x27')][_0x4a52('0x3f')](_0x5e8aba);})['then'](function(_0x1a0571){_0x4c2a51[_0x4a52('0x40')]=_0x1a0571;return _0x4c2a51;})[_0x4a52('0x20')](respondWithFilteredResult(_0x14f37d,_0x5e8aba))[_0x4a52('0x41')](handleError(_0x14f37d,null));};exports['show']=function(_0x2eb9c4,_0x22d151){var _0x26cbcf={'raw':![],'where':{'id':_0x2eb9c4['params']['id']}},_0x5db31f={};_0x5db31f[_0x4a52('0x2c')]=_['keys'](db['Automation'][_0x4a52('0x28')]);_0x5db31f[_0x4a52('0x2d')]=_[_0x4a52('0x2e')](_0x2eb9c4[_0x4a52('0x2d')]);_0x5db31f['filters']=_[_0x4a52('0x30')](_0x5db31f['model'],_0x5db31f['query']);_0x26cbcf['attributes']=_['intersection'](_0x5db31f['model'],qs[_0x4a52('0x31')](_0x2eb9c4[_0x4a52('0x2d')][_0x4a52('0x31')]));_0x26cbcf[_0x4a52('0x32')]=_0x26cbcf['attributes']['length']?_0x26cbcf[_0x4a52('0x32')]:_0x5db31f[_0x4a52('0x2c')];if(_0x2eb9c4[_0x4a52('0x2d')][_0x4a52('0x3e')]){_0x26cbcf[_0x4a52('0x42')]=[{'all':!![]}];}_0x26cbcf=_['merge']({},_0x26cbcf,_0x2eb9c4['options']);return db[_0x4a52('0x27')]['find'](_0x26cbcf)[_0x4a52('0x20')](handleEntityNotFound(_0x22d151,null))[_0x4a52('0x20')](respondWithResult(_0x22d151,null))['catch'](handleError(_0x22d151,null));};exports[_0x4a52('0x43')]=function(_0x16ff75,_0x383508){return db[_0x4a52('0x27')][_0x4a52('0x43')](_0x16ff75[_0x4a52('0x44')],{})['then'](respondWithResult(_0x383508,0xc9))[_0x4a52('0x41')](handleError(_0x383508,null));};exports[_0x4a52('0x1f')]=function(_0xaea45b,_0x20b0d8){if(_0xaea45b[_0x4a52('0x44')]['id']){delete _0xaea45b[_0x4a52('0x44')]['id'];}return db[_0x4a52('0x27')]['find']({'where':{'id':_0xaea45b[_0x4a52('0x45')]['id']}})[_0x4a52('0x20')](handleEntityNotFound(_0x20b0d8,null))[_0x4a52('0x20')](saveUpdates(_0xaea45b[_0x4a52('0x44')],null))['then'](respondWithResult(_0x20b0d8,null))[_0x4a52('0x41')](handleError(_0x20b0d8,null));};exports[_0x4a52('0x21')]=function(_0x4a7f27,_0x44483c){return db['Automation'][_0x4a52('0x46')]({'where':{'id':_0x4a7f27['params']['id']}})[_0x4a52('0x20')](handleEntityNotFound(_0x44483c,null))['then'](removeEntity(_0x44483c,null))[_0x4a52('0x41')](handleError(_0x44483c,null));};exports[_0x4a52('0x47')]=function(_0xea63e,_0x466e72,_0x3781a6){return db[_0x4a52('0x48')][_0x4a52('0x46')]({'where':{'id':_0xea63e[_0x4a52('0x45')]['id']}})['then'](handleEntityNotFound(_0x466e72,null))[_0x4a52('0x20')](function(_0x440797){if(_0x440797){return _0x440797[_0x4a52('0x47')](_0xea63e[_0x4a52('0x44')][_0x4a52('0x49')],_[_0x4a52('0x4a')](_0xea63e['body'],[_0x4a52('0x49'),'id'])||{});}})[_0x4a52('0x20')](respondWithResult(_0x466e72,null))[_0x4a52('0x41')](handleError(_0x466e72,null));};exports[_0x4a52('0x4b')]=function(_0x19c988,_0x7616f,_0x4c2699){var _0x318d3a={};var _0x3cfde1={};var _0x2feb47;var _0x2703ef;return db[_0x4a52('0x27')][_0x4a52('0x4c')]({'where':{'id':_0x19c988[_0x4a52('0x45')]['id']}})[_0x4a52('0x20')](handleEntityNotFound(_0x7616f,null))['then'](function(_0x2fdc8c){if(_0x2fdc8c){_0x2feb47=_0x2fdc8c;_0x3cfde1[_0x4a52('0x2c')]=_[_0x4a52('0x2e')](db['Condition']['rawAttributes']);_0x3cfde1[_0x4a52('0x2d')]=_['keys'](_0x19c988[_0x4a52('0x2d')]);_0x3cfde1['filters']=_[_0x4a52('0x30')](_0x3cfde1[_0x4a52('0x2c')],_0x3cfde1['query']);_0x318d3a['attributes']=_['intersection'](_0x3cfde1['model'],qs['fields'](_0x19c988[_0x4a52('0x2d')][_0x4a52('0x31')]));_0x318d3a['attributes']=_0x318d3a['attributes'][_0x4a52('0x33')]?_0x318d3a[_0x4a52('0x32')]:_0x3cfde1['model'];_0x318d3a[_0x4a52('0x36')]=qs[_0x4a52('0x37')](_0x19c988[_0x4a52('0x2d')][_0x4a52('0x37')]);_0x318d3a[_0x4a52('0x38')]=qs[_0x4a52('0x2f')](_[_0x4a52('0x39')](_0x19c988['query'],_0x3cfde1[_0x4a52('0x2f')]));if(_0x19c988[_0x4a52('0x2d')][_0x4a52('0x3a')]){_0x318d3a[_0x4a52('0x38')]=_[_0x4a52('0x3b')](_0x318d3a[_0x4a52('0x38')],{'$or':_['map'](_0x318d3a[_0x4a52('0x32')],function(_0x4a4993){var _0x4b8a77={};_0x4b8a77[_0x4a4993]={'$like':'%'+_0x19c988[_0x4a52('0x2d')][_0x4a52('0x3a')]+'%'};return _0x4b8a77;})});}_0x318d3a=_[_0x4a52('0x3b')]({},_0x318d3a,_0x19c988['options']);return _0x2feb47[_0x4a52('0x4b')](_0x318d3a);}})[_0x4a52('0x20')](function(_0x3a670f){if(_0x3a670f){_0x2703ef=_0x3a670f[_0x4a52('0x33')];if(!_0x19c988[_0x4a52('0x2d')][_0x4a52('0x34')](_0x4a52('0x35'))){_0x318d3a[_0x4a52('0x19')]=qs[_0x4a52('0x19')](_0x19c988['query'][_0x4a52('0x19')]);_0x318d3a['offset']=qs[_0x4a52('0x1b')](_0x19c988['query'][_0x4a52('0x1b')]);}return _0x2feb47[_0x4a52('0x4b')](_0x318d3a);}})[_0x4a52('0x20')](function(_0x50aec0){if(_0x50aec0){return _0x50aec0?{'count':_0x2703ef,'rows':_0x50aec0}:null;}})[_0x4a52('0x20')](respondWithResult(_0x7616f,null))['catch'](handleError(_0x7616f,null));};exports[_0x4a52('0x4d')]=function(_0x86079a,_0x128527,_0x453fed){return db[_0x4a52('0x4e')][_0x4a52('0x46')]({'where':{'id':_0x86079a[_0x4a52('0x45')]['id']}})[_0x4a52('0x20')](handleEntityNotFound(_0x128527,null))[_0x4a52('0x20')](function(_0x504e89){if(_0x504e89){return _0x504e89[_0x4a52('0x4d')](_0x86079a['body'][_0x4a52('0x49')],_[_0x4a52('0x4a')](_0x86079a[_0x4a52('0x44')],[_0x4a52('0x49'),'id'])||{});}})['then'](respondWithResult(_0x128527,null))[_0x4a52('0x41')](handleError(_0x128527,null));};exports[_0x4a52('0x4f')]=function(_0x5791ec,_0x3fe2f2,_0x4315db){var _0x13792c={};var _0x3f1438={};var _0x252d83;var _0x4628f6;return db['Automation'][_0x4a52('0x4c')]({'where':{'id':_0x5791ec['params']['id']}})[_0x4a52('0x20')](handleEntityNotFound(_0x3fe2f2,null))['then'](function(_0x5ca71f){if(_0x5ca71f){_0x252d83=_0x5ca71f;_0x3f1438[_0x4a52('0x2c')]=_[_0x4a52('0x2e')](db['Action'][_0x4a52('0x28')]);_0x3f1438[_0x4a52('0x2d')]=_['keys'](_0x5791ec['query']);_0x3f1438[_0x4a52('0x2f')]=_['intersection'](_0x3f1438[_0x4a52('0x2c')],_0x3f1438['query']);_0x13792c[_0x4a52('0x32')]=_[_0x4a52('0x30')](_0x3f1438['model'],qs['fields'](_0x5791ec[_0x4a52('0x2d')][_0x4a52('0x31')]));_0x13792c[_0x4a52('0x32')]=_0x13792c[_0x4a52('0x32')][_0x4a52('0x33')]?_0x13792c[_0x4a52('0x32')]:_0x3f1438[_0x4a52('0x2c')];_0x13792c[_0x4a52('0x36')]=qs[_0x4a52('0x37')](_0x5791ec[_0x4a52('0x2d')][_0x4a52('0x37')]);_0x13792c[_0x4a52('0x38')]=qs[_0x4a52('0x2f')](_[_0x4a52('0x39')](_0x5791ec[_0x4a52('0x2d')],_0x3f1438[_0x4a52('0x2f')]));if(_0x5791ec[_0x4a52('0x2d')][_0x4a52('0x3a')]){_0x13792c['where']=_[_0x4a52('0x3b')](_0x13792c[_0x4a52('0x38')],{'$or':_[_0x4a52('0x26')](_0x13792c['attributes'],function(_0x43c5c8){var _0x429d0e={};_0x429d0e[_0x43c5c8]={'$like':'%'+_0x5791ec[_0x4a52('0x2d')]['filter']+'%'};return _0x429d0e;})});}_0x13792c=_[_0x4a52('0x3b')]({},_0x13792c,_0x5791ec[_0x4a52('0x3d')]);return _0x252d83[_0x4a52('0x4f')](_0x13792c);}})['then'](function(_0x495799){if(_0x495799){_0x4628f6=_0x495799['length'];if(!_0x5791ec['query'][_0x4a52('0x34')](_0x4a52('0x35'))){_0x13792c['limit']=qs[_0x4a52('0x19')](_0x5791ec[_0x4a52('0x2d')]['limit']);_0x13792c[_0x4a52('0x1b')]=qs[_0x4a52('0x1b')](_0x5791ec[_0x4a52('0x2d')]['offset']);}return _0x252d83[_0x4a52('0x4f')](_0x13792c);}})[_0x4a52('0x20')](function(_0x27886b){if(_0x27886b){return _0x27886b?{'count':_0x4628f6,'rows':_0x27886b}:null;}})[_0x4a52('0x20')](respondWithResult(_0x3fe2f2,null))[_0x4a52('0x41')](handleError(_0x3fe2f2,null));};