Built motion from commit e6806ed6.|2.6.0
[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 _0xc566=['type','key','query','keys','filters','intersection','model','fields','length','attributes','hasOwnProperty','nolimit','order','where','pick','merge','VIRTUAL','filter','options','Automation','includeAll','include','findAll','rows','catch','show','find','create','body','params','destroy','addConditions','Condition','ids','omit','getConditions','findOne','sort','addActions','Action','getActions','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','lodash','squel','desk.js','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','json','offset','undefined','count','limit','set','Content-Range','apply','reject','update','then','end','error','stack','name','send','index','map','rawAttributes'];(function(_0x1ff5ea,_0x5f0aec){var _0x20ae0f=function(_0x1b39fe){while(--_0x1b39fe){_0x1ff5ea['push'](_0x1ff5ea['shift']());}};_0x20ae0f(++_0x5f0aec);}(_0xc566,0x1c8));var _0x6c56=function(_0x3168f8,_0x1a77e9){_0x3168f8=_0x3168f8-0x0;var _0x443ead=_0xc566[_0x3168f8];return _0x443ead;};'use strict';var emlformat=require(_0x6c56('0x0'));var rimraf=require(_0x6c56('0x1'));var zipdir=require(_0x6c56('0x2'));var jsonpatch=require(_0x6c56('0x3'));var rp=require(_0x6c56('0x4'));var moment=require(_0x6c56('0x5'));var BPromise=require(_0x6c56('0x6'));var Mustache=require(_0x6c56('0x7'));var util=require(_0x6c56('0x8'));var path=require('path');var sox=require(_0x6c56('0x9'));var csv=require(_0x6c56('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x6c56('0xb'));var squel=require(_0x6c56('0xc'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x6c56('0xd'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x6c56('0xe'));var qs=require(_0x6c56('0xf'));var as=require(_0x6c56('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x6c56('0x11'))('api');var utils=require(_0x6c56('0x12'));var config=require(_0x6c56('0x13'));var licenseUtil=require('../../config/license/util');var db=require(_0x6c56('0x14'))['db'];function respondWithStatusCode(_0x58e45c,_0x1ac788){_0x1ac788=_0x1ac788||0xcc;return function(_0x599b9d){if(_0x599b9d){return _0x58e45c[_0x6c56('0x15')](_0x1ac788);}return _0x58e45c[_0x6c56('0x16')](_0x1ac788)['end']();};}function respondWithResult(_0x516002,_0x16beea){_0x16beea=_0x16beea||0xc8;return function(_0x1669ed){if(_0x1669ed){return _0x516002['status'](_0x16beea)[_0x6c56('0x17')](_0x1669ed);}};}function respondWithFilteredResult(_0x1ce848,_0x5cbcff){return function(_0x3637ae){if(_0x3637ae){var _0x3a7554=typeof _0x5cbcff[_0x6c56('0x18')]==='undefined'&&typeof _0x5cbcff['limit']===_0x6c56('0x19');var _0x2caa38=_0x3637ae[_0x6c56('0x1a')];var _0xeb0f4c=_0x3a7554?0x0:_0x5cbcff[_0x6c56('0x18')];var _0x2c8a67=_0x3a7554?_0x3637ae[_0x6c56('0x1a')]:_0x5cbcff[_0x6c56('0x18')]+_0x5cbcff[_0x6c56('0x1b')];var _0x311ea2;if(_0x2c8a67>=_0x2caa38){_0x2c8a67=_0x2caa38;_0x311ea2=0xc8;}else{_0x311ea2=0xce;}_0x1ce848[_0x6c56('0x16')](_0x311ea2);return _0x1ce848[_0x6c56('0x1c')](_0x6c56('0x1d'),_0xeb0f4c+'-'+_0x2c8a67+'/'+_0x2caa38)[_0x6c56('0x17')](_0x3637ae);}return null;};}function patchUpdates(_0xd0cf6c){return function(_0x1d8d0f){try{jsonpatch[_0x6c56('0x1e')](_0x1d8d0f,_0xd0cf6c,!![]);}catch(_0x400931){return BPromise[_0x6c56('0x1f')](_0x400931);}return _0x1d8d0f['save']();};}function saveUpdates(_0x5ea2ad,_0x3cda49){return function(_0x8999c){if(_0x8999c){return _0x8999c[_0x6c56('0x20')](_0x5ea2ad)[_0x6c56('0x21')](function(_0x51c714){return _0x51c714;});}return null;};}function removeEntity(_0x1a793c,_0x1a4f77){return function(_0x24a3f3){if(_0x24a3f3){return _0x24a3f3['destroy']()[_0x6c56('0x21')](function(){_0x1a793c[_0x6c56('0x16')](0xcc)[_0x6c56('0x22')]();});}};}function handleEntityNotFound(_0x4da970,_0x2cb680){return function(_0x5736c8){if(!_0x5736c8){_0x4da970[_0x6c56('0x15')](0x194);}return _0x5736c8;};}function handleError(_0x570335,_0x532b4b){_0x532b4b=_0x532b4b||0x1f4;return function(_0x5cec5d){logger[_0x6c56('0x23')](_0x5cec5d[_0x6c56('0x24')]);if(_0x5cec5d[_0x6c56('0x25')]){delete _0x5cec5d[_0x6c56('0x25')];}_0x570335['status'](_0x532b4b)[_0x6c56('0x26')](_0x5cec5d);};}exports[_0x6c56('0x27')]=function(_0x16420c,_0x13f692){var _0x1cda89={},_0x149e0f={},_0x2ab20b={'count':0x0,'rows':[]};var _0x471661=_[_0x6c56('0x28')](db['Automation'][_0x6c56('0x29')],function(_0x163a71){return{'name':_0x163a71['fieldName'],'type':_0x163a71[_0x6c56('0x2a')][_0x6c56('0x2b')]};});_0x149e0f['model']=_[_0x6c56('0x28')](_0x471661,_0x6c56('0x25'));_0x149e0f[_0x6c56('0x2c')]=_[_0x6c56('0x2d')](_0x16420c[_0x6c56('0x2c')]);_0x149e0f[_0x6c56('0x2e')]=_[_0x6c56('0x2f')](_0x149e0f['model'],_0x149e0f['query']);_0x1cda89['attributes']=_[_0x6c56('0x2f')](_0x149e0f[_0x6c56('0x30')],qs[_0x6c56('0x31')](_0x16420c['query'][_0x6c56('0x31')]));_0x1cda89['attributes']=_0x1cda89['attributes'][_0x6c56('0x32')]?_0x1cda89[_0x6c56('0x33')]:_0x149e0f['model'];if(!_0x16420c[_0x6c56('0x2c')][_0x6c56('0x34')](_0x6c56('0x35'))){_0x1cda89[_0x6c56('0x1b')]=qs[_0x6c56('0x1b')](_0x16420c[_0x6c56('0x2c')][_0x6c56('0x1b')]);_0x1cda89[_0x6c56('0x18')]=qs[_0x6c56('0x18')](_0x16420c[_0x6c56('0x2c')][_0x6c56('0x18')]);}_0x1cda89[_0x6c56('0x36')]=qs['sort'](_0x16420c[_0x6c56('0x2c')]['sort']);_0x1cda89[_0x6c56('0x37')]=qs['filters'](_[_0x6c56('0x38')](_0x16420c[_0x6c56('0x2c')],_0x149e0f[_0x6c56('0x2e')]),_0x471661);if(_0x16420c[_0x6c56('0x2c')]['filter']){_0x1cda89[_0x6c56('0x37')]=_[_0x6c56('0x39')](_0x1cda89[_0x6c56('0x37')],{'$or':_[_0x6c56('0x28')](_0x471661,function(_0x4fc2cf){if(_0x4fc2cf[_0x6c56('0x2a')]!==_0x6c56('0x3a')){var _0x4a997c={};_0x4a997c[_0x4fc2cf['name']]={'$like':'%'+_0x16420c[_0x6c56('0x2c')][_0x6c56('0x3b')]+'%'};return _0x4a997c;}})});}_0x1cda89=_[_0x6c56('0x39')]({},_0x1cda89,_0x16420c[_0x6c56('0x3c')]);var _0x1c3011={'where':_0x1cda89[_0x6c56('0x37')]};return db[_0x6c56('0x3d')][_0x6c56('0x1a')](_0x1c3011)[_0x6c56('0x21')](function(_0x4a1270){_0x2ab20b[_0x6c56('0x1a')]=_0x4a1270;if(_0x16420c[_0x6c56('0x2c')][_0x6c56('0x3e')]){_0x1cda89[_0x6c56('0x3f')]=[{'all':!![]}];}return db['Automation'][_0x6c56('0x40')](_0x1cda89);})[_0x6c56('0x21')](function(_0x412224){_0x2ab20b[_0x6c56('0x41')]=_0x412224;return _0x2ab20b;})['then'](respondWithFilteredResult(_0x13f692,_0x1cda89))[_0x6c56('0x42')](handleError(_0x13f692,null));};exports[_0x6c56('0x43')]=function(_0x3b5a8d,_0x1e2245){var _0x2bbaa7={'raw':![],'where':{'id':_0x3b5a8d['params']['id']}},_0x5037d1={};_0x5037d1[_0x6c56('0x30')]=_[_0x6c56('0x2d')](db[_0x6c56('0x3d')][_0x6c56('0x29')]);_0x5037d1[_0x6c56('0x2c')]=_['keys'](_0x3b5a8d['query']);_0x5037d1[_0x6c56('0x2e')]=_[_0x6c56('0x2f')](_0x5037d1[_0x6c56('0x30')],_0x5037d1[_0x6c56('0x2c')]);_0x2bbaa7[_0x6c56('0x33')]=_['intersection'](_0x5037d1['model'],qs[_0x6c56('0x31')](_0x3b5a8d['query']['fields']));_0x2bbaa7['attributes']=_0x2bbaa7[_0x6c56('0x33')]['length']?_0x2bbaa7[_0x6c56('0x33')]:_0x5037d1[_0x6c56('0x30')];if(_0x3b5a8d[_0x6c56('0x2c')][_0x6c56('0x3e')]){_0x2bbaa7['include']=[{'all':!![]}];}_0x2bbaa7=_['merge']({},_0x2bbaa7,_0x3b5a8d[_0x6c56('0x3c')]);return db['Automation'][_0x6c56('0x44')](_0x2bbaa7)['then'](handleEntityNotFound(_0x1e2245,null))['then'](respondWithResult(_0x1e2245,null))[_0x6c56('0x42')](handleError(_0x1e2245,null));};exports[_0x6c56('0x45')]=function(_0x51150a,_0x49d9b1){return db['Automation'][_0x6c56('0x45')](_0x51150a[_0x6c56('0x46')],{})[_0x6c56('0x21')](respondWithResult(_0x49d9b1,0xc9))['catch'](handleError(_0x49d9b1,null));};exports[_0x6c56('0x20')]=function(_0x293255,_0x4be041){if(_0x293255['body']['id']){delete _0x293255['body']['id'];}return db[_0x6c56('0x3d')][_0x6c56('0x44')]({'where':{'id':_0x293255[_0x6c56('0x47')]['id']}})[_0x6c56('0x21')](handleEntityNotFound(_0x4be041,null))[_0x6c56('0x21')](saveUpdates(_0x293255[_0x6c56('0x46')],null))[_0x6c56('0x21')](respondWithResult(_0x4be041,null))[_0x6c56('0x42')](handleError(_0x4be041,null));};exports[_0x6c56('0x48')]=function(_0x1ee6fa,_0x5002ba){return db['Automation'][_0x6c56('0x44')]({'where':{'id':_0x1ee6fa['params']['id']}})[_0x6c56('0x21')](handleEntityNotFound(_0x5002ba,null))[_0x6c56('0x21')](removeEntity(_0x5002ba,null))[_0x6c56('0x42')](handleError(_0x5002ba,null));};exports[_0x6c56('0x49')]=function(_0x40528c,_0x4b7b9b,_0x5f3203){return db[_0x6c56('0x4a')]['find']({'where':{'id':_0x40528c['params']['id']}})[_0x6c56('0x21')](handleEntityNotFound(_0x4b7b9b,null))[_0x6c56('0x21')](function(_0x4e1783){if(_0x4e1783){return _0x4e1783[_0x6c56('0x49')](_0x40528c[_0x6c56('0x46')][_0x6c56('0x4b')],_[_0x6c56('0x4c')](_0x40528c['body'],[_0x6c56('0x4b'),'id'])||{});}})['then'](respondWithResult(_0x4b7b9b,null))['catch'](handleError(_0x4b7b9b,null));};exports[_0x6c56('0x4d')]=function(_0x23bb31,_0x52028d,_0x36d83e){var _0x40759b={};var _0x892338={};var _0xd13405;var _0xbb1980;return db[_0x6c56('0x3d')][_0x6c56('0x4e')]({'where':{'id':_0x23bb31[_0x6c56('0x47')]['id']}})[_0x6c56('0x21')](handleEntityNotFound(_0x52028d,null))[_0x6c56('0x21')](function(_0x5c46be){if(_0x5c46be){_0xd13405=_0x5c46be;_0x892338[_0x6c56('0x30')]=_[_0x6c56('0x2d')](db[_0x6c56('0x4a')][_0x6c56('0x29')]);_0x892338[_0x6c56('0x2c')]=_[_0x6c56('0x2d')](_0x23bb31[_0x6c56('0x2c')]);_0x892338[_0x6c56('0x2e')]=_['intersection'](_0x892338[_0x6c56('0x30')],_0x892338[_0x6c56('0x2c')]);_0x40759b['attributes']=_[_0x6c56('0x2f')](_0x892338['model'],qs['fields'](_0x23bb31[_0x6c56('0x2c')][_0x6c56('0x31')]));_0x40759b[_0x6c56('0x33')]=_0x40759b[_0x6c56('0x33')][_0x6c56('0x32')]?_0x40759b[_0x6c56('0x33')]:_0x892338[_0x6c56('0x30')];_0x40759b[_0x6c56('0x36')]=qs['sort'](_0x23bb31[_0x6c56('0x2c')][_0x6c56('0x4f')]);_0x40759b[_0x6c56('0x37')]=qs['filters'](_[_0x6c56('0x38')](_0x23bb31[_0x6c56('0x2c')],_0x892338['filters']));if(_0x23bb31[_0x6c56('0x2c')][_0x6c56('0x3b')]){_0x40759b[_0x6c56('0x37')]=_[_0x6c56('0x39')](_0x40759b[_0x6c56('0x37')],{'$or':_[_0x6c56('0x28')](_0x40759b[_0x6c56('0x33')],function(_0x4ab65a){var _0x5e2457={};_0x5e2457[_0x4ab65a]={'$like':'%'+_0x23bb31[_0x6c56('0x2c')][_0x6c56('0x3b')]+'%'};return _0x5e2457;})});}_0x40759b=_[_0x6c56('0x39')]({},_0x40759b,_0x23bb31['options']);return _0xd13405['getConditions'](_0x40759b);}})[_0x6c56('0x21')](function(_0x526674){if(_0x526674){_0xbb1980=_0x526674['length'];if(!_0x23bb31[_0x6c56('0x2c')][_0x6c56('0x34')]('nolimit')){_0x40759b[_0x6c56('0x1b')]=qs[_0x6c56('0x1b')](_0x23bb31[_0x6c56('0x2c')]['limit']);_0x40759b[_0x6c56('0x18')]=qs[_0x6c56('0x18')](_0x23bb31[_0x6c56('0x2c')][_0x6c56('0x18')]);}return _0xd13405[_0x6c56('0x4d')](_0x40759b);}})[_0x6c56('0x21')](function(_0x34865d){if(_0x34865d){return _0x34865d?{'count':_0xbb1980,'rows':_0x34865d}:null;}})['then'](respondWithResult(_0x52028d,null))[_0x6c56('0x42')](handleError(_0x52028d,null));};exports[_0x6c56('0x50')]=function(_0x269d15,_0xda3ad5,_0x2f50f5){return db[_0x6c56('0x51')]['find']({'where':{'id':_0x269d15[_0x6c56('0x47')]['id']}})[_0x6c56('0x21')](handleEntityNotFound(_0xda3ad5,null))[_0x6c56('0x21')](function(_0x5f0ff7){if(_0x5f0ff7){return _0x5f0ff7[_0x6c56('0x50')](_0x269d15[_0x6c56('0x46')]['ids'],_['omit'](_0x269d15[_0x6c56('0x46')],[_0x6c56('0x4b'),'id'])||{});}})[_0x6c56('0x21')](respondWithResult(_0xda3ad5,null))[_0x6c56('0x42')](handleError(_0xda3ad5,null));};exports['getActions']=function(_0x21f3d6,_0x3493e3,_0x2be1ac){var _0x1be48={};var _0x176be9={};var _0x47b89c;var _0x4c4030;return db[_0x6c56('0x3d')]['findOne']({'where':{'id':_0x21f3d6['params']['id']}})[_0x6c56('0x21')](handleEntityNotFound(_0x3493e3,null))[_0x6c56('0x21')](function(_0x41a0e2){if(_0x41a0e2){_0x47b89c=_0x41a0e2;_0x176be9['model']=_[_0x6c56('0x2d')](db[_0x6c56('0x51')][_0x6c56('0x29')]);_0x176be9[_0x6c56('0x2c')]=_[_0x6c56('0x2d')](_0x21f3d6[_0x6c56('0x2c')]);_0x176be9['filters']=_[_0x6c56('0x2f')](_0x176be9[_0x6c56('0x30')],_0x176be9['query']);_0x1be48[_0x6c56('0x33')]=_['intersection'](_0x176be9['model'],qs[_0x6c56('0x31')](_0x21f3d6[_0x6c56('0x2c')][_0x6c56('0x31')]));_0x1be48[_0x6c56('0x33')]=_0x1be48['attributes']['length']?_0x1be48[_0x6c56('0x33')]:_0x176be9[_0x6c56('0x30')];_0x1be48[_0x6c56('0x36')]=qs[_0x6c56('0x4f')](_0x21f3d6[_0x6c56('0x2c')][_0x6c56('0x4f')]);_0x1be48[_0x6c56('0x37')]=qs[_0x6c56('0x2e')](_[_0x6c56('0x38')](_0x21f3d6[_0x6c56('0x2c')],_0x176be9['filters']));if(_0x21f3d6[_0x6c56('0x2c')][_0x6c56('0x3b')]){_0x1be48[_0x6c56('0x37')]=_[_0x6c56('0x39')](_0x1be48[_0x6c56('0x37')],{'$or':_['map'](_0x1be48['attributes'],function(_0x304c54){var _0x1b10cf={};_0x1b10cf[_0x304c54]={'$like':'%'+_0x21f3d6[_0x6c56('0x2c')]['filter']+'%'};return _0x1b10cf;})});}_0x1be48=_['merge']({},_0x1be48,_0x21f3d6['options']);return _0x47b89c['getActions'](_0x1be48);}})[_0x6c56('0x21')](function(_0x207749){if(_0x207749){_0x4c4030=_0x207749[_0x6c56('0x32')];if(!_0x21f3d6[_0x6c56('0x2c')][_0x6c56('0x34')]('nolimit')){_0x1be48[_0x6c56('0x1b')]=qs[_0x6c56('0x1b')](_0x21f3d6['query'][_0x6c56('0x1b')]);_0x1be48['offset']=qs['offset'](_0x21f3d6[_0x6c56('0x2c')][_0x6c56('0x18')]);}return _0x47b89c[_0x6c56('0x52')](_0x1be48);}})[_0x6c56('0x21')](function(_0x5ce2ad){if(_0x5ce2ad){return _0x5ce2ad?{'count':_0x4c4030,'rows':_0x5ce2ad}:null;}})[_0x6c56('0x21')](respondWithResult(_0x3493e3,null))['catch'](handleError(_0x3493e3,null));};