Built motion from commit 0900f080.|2.5.45
[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 _0x9acc=['length','hasOwnProperty','nolimit','sort','pick','filter','where','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','merge','find','create','body','addConditions','ids','getConditions','findOne','addActions','Action','getActions','order','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','querystring','papaparse','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','end','offset','limit','undefined','count','Content-Range','json','reject','update','then','destroy','error','stack','name','send','index','Automation','rawAttributes','type','key','map','keys','query','filters','intersection','model','attributes','fields'];(function(_0x125633,_0x2514fe){var _0x55b6e8=function(_0x38ed3b){while(--_0x38ed3b){_0x125633['push'](_0x125633['shift']());}};_0x55b6e8(++_0x2514fe);}(_0x9acc,0x6e));var _0xc9ac=function(_0x351fbe,_0xe352a2){_0x351fbe=_0x351fbe-0x0;var _0x56d088=_0x9acc[_0x351fbe];return _0x56d088;};'use strict';var emlformat=require(_0xc9ac('0x0'));var rimraf=require(_0xc9ac('0x1'));var zipdir=require(_0xc9ac('0x2'));var jsonpatch=require(_0xc9ac('0x3'));var rp=require(_0xc9ac('0x4'));var moment=require(_0xc9ac('0x5'));var BPromise=require('bluebird');var Mustache=require(_0xc9ac('0x6'));var util=require(_0xc9ac('0x7'));var path=require(_0xc9ac('0x8'));var sox=require('sox');var csv=require(_0xc9ac('0x9'));var ejs=require(_0xc9ac('0xa'));var fs=require('fs');var fs_extra=require(_0xc9ac('0xb'));var _=require(_0xc9ac('0xc'));var squel=require(_0xc9ac('0xd'));var crypto=require(_0xc9ac('0xe'));var jsforce=require('jsforce');var deskjs=require(_0xc9ac('0xf'));var toCsv=require(_0xc9ac('0x9'));var querystring=require(_0xc9ac('0x10'));var Papa=require(_0xc9ac('0x11'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0xc9ac('0x12'));var hardwareService=require(_0xc9ac('0x13'));var logger=require('../../config/logger')(_0xc9ac('0x14'));var utils=require(_0xc9ac('0x15'));var config=require(_0xc9ac('0x16'));var licenseUtil=require(_0xc9ac('0x17'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0xec416f,_0x244098){_0x244098=_0x244098||0xcc;return function(_0x56a78c){if(_0x56a78c){return _0xec416f[_0xc9ac('0x18')](_0x244098);}return _0xec416f[_0xc9ac('0x19')](_0x244098)[_0xc9ac('0x1a')]();};}function respondWithResult(_0x1046f1,_0x482585){_0x482585=_0x482585||0xc8;return function(_0x3f31e9){if(_0x3f31e9){return _0x1046f1[_0xc9ac('0x19')](_0x482585)['json'](_0x3f31e9);}};}function respondWithFilteredResult(_0x418f86,_0x24cf70){return function(_0x30f718){if(_0x30f718){var _0x1c1232=typeof _0x24cf70[_0xc9ac('0x1b')]==='undefined'&&typeof _0x24cf70[_0xc9ac('0x1c')]===_0xc9ac('0x1d');var _0x1ec39d=_0x30f718['count'];var _0x487457=_0x1c1232?0x0:_0x24cf70[_0xc9ac('0x1b')];var _0x331197=_0x1c1232?_0x30f718[_0xc9ac('0x1e')]:_0x24cf70[_0xc9ac('0x1b')]+_0x24cf70[_0xc9ac('0x1c')];var _0x5f458c;if(_0x331197>=_0x1ec39d){_0x331197=_0x1ec39d;_0x5f458c=0xc8;}else{_0x5f458c=0xce;}_0x418f86[_0xc9ac('0x19')](_0x5f458c);return _0x418f86['set'](_0xc9ac('0x1f'),_0x487457+'-'+_0x331197+'/'+_0x1ec39d)[_0xc9ac('0x20')](_0x30f718);}return null;};}function patchUpdates(_0x470363){return function(_0x2a9679){try{jsonpatch['apply'](_0x2a9679,_0x470363,!![]);}catch(_0x1173f8){return BPromise[_0xc9ac('0x21')](_0x1173f8);}return _0x2a9679['save']();};}function saveUpdates(_0x249e57,_0x12823d){return function(_0x3afcc7){if(_0x3afcc7){return _0x3afcc7[_0xc9ac('0x22')](_0x249e57)[_0xc9ac('0x23')](function(_0x1c076b){return _0x1c076b;});}return null;};}function removeEntity(_0x226d2,_0x315d94){return function(_0x451c11){if(_0x451c11){return _0x451c11[_0xc9ac('0x24')]()[_0xc9ac('0x23')](function(){_0x226d2[_0xc9ac('0x19')](0xcc)[_0xc9ac('0x1a')]();});}};}function handleEntityNotFound(_0x2f75a8,_0x5e4b7e){return function(_0x599f5a){if(!_0x599f5a){_0x2f75a8[_0xc9ac('0x18')](0x194);}return _0x599f5a;};}function handleError(_0x1b7199,_0x3dd414){_0x3dd414=_0x3dd414||0x1f4;return function(_0x31bc75){logger[_0xc9ac('0x25')](_0x31bc75[_0xc9ac('0x26')]);if(_0x31bc75[_0xc9ac('0x27')]){delete _0x31bc75['name'];}_0x1b7199[_0xc9ac('0x19')](_0x3dd414)[_0xc9ac('0x28')](_0x31bc75);};}exports[_0xc9ac('0x29')]=function(_0x496398,_0x25be6f){var _0x4ab168={},_0x1d19ce={},_0x2a3df1={'count':0x0,'rows':[]};var _0x1b42f8=_['map'](db[_0xc9ac('0x2a')][_0xc9ac('0x2b')],function(_0xa7a38c){return{'name':_0xa7a38c['fieldName'],'type':_0xa7a38c[_0xc9ac('0x2c')][_0xc9ac('0x2d')]};});_0x1d19ce['model']=_[_0xc9ac('0x2e')](_0x1b42f8,'name');_0x1d19ce['query']=_[_0xc9ac('0x2f')](_0x496398[_0xc9ac('0x30')]);_0x1d19ce[_0xc9ac('0x31')]=_[_0xc9ac('0x32')](_0x1d19ce[_0xc9ac('0x33')],_0x1d19ce[_0xc9ac('0x30')]);_0x4ab168[_0xc9ac('0x34')]=_[_0xc9ac('0x32')](_0x1d19ce[_0xc9ac('0x33')],qs[_0xc9ac('0x35')](_0x496398['query'][_0xc9ac('0x35')]));_0x4ab168['attributes']=_0x4ab168[_0xc9ac('0x34')][_0xc9ac('0x36')]?_0x4ab168[_0xc9ac('0x34')]:_0x1d19ce['model'];if(!_0x496398[_0xc9ac('0x30')][_0xc9ac('0x37')](_0xc9ac('0x38'))){_0x4ab168[_0xc9ac('0x1c')]=qs[_0xc9ac('0x1c')](_0x496398['query'][_0xc9ac('0x1c')]);_0x4ab168[_0xc9ac('0x1b')]=qs[_0xc9ac('0x1b')](_0x496398[_0xc9ac('0x30')]['offset']);}_0x4ab168['order']=qs[_0xc9ac('0x39')](_0x496398[_0xc9ac('0x30')]['sort']);_0x4ab168['where']=qs[_0xc9ac('0x31')](_[_0xc9ac('0x3a')](_0x496398[_0xc9ac('0x30')],_0x1d19ce[_0xc9ac('0x31')]),_0x1b42f8);if(_0x496398[_0xc9ac('0x30')][_0xc9ac('0x3b')]){_0x4ab168[_0xc9ac('0x3c')]=_['merge'](_0x4ab168['where'],{'$or':_[_0xc9ac('0x2e')](_0x1b42f8,function(_0x4cf48f){if(_0x4cf48f['type']!==_0xc9ac('0x3d')){var _0x3aad37={};_0x3aad37[_0x4cf48f[_0xc9ac('0x27')]]={'$like':'%'+_0x496398[_0xc9ac('0x30')][_0xc9ac('0x3b')]+'%'};return _0x3aad37;}})});}_0x4ab168=_['merge']({},_0x4ab168,_0x496398[_0xc9ac('0x3e')]);var _0x5f1312={'where':_0x4ab168[_0xc9ac('0x3c')]};return db[_0xc9ac('0x2a')]['count'](_0x5f1312)[_0xc9ac('0x23')](function(_0x4b126c){_0x2a3df1['count']=_0x4b126c;if(_0x496398[_0xc9ac('0x30')][_0xc9ac('0x3f')]){_0x4ab168[_0xc9ac('0x40')]=[{'all':!![]}];}return db[_0xc9ac('0x2a')][_0xc9ac('0x41')](_0x4ab168);})[_0xc9ac('0x23')](function(_0x36db68){_0x2a3df1[_0xc9ac('0x42')]=_0x36db68;return _0x2a3df1;})[_0xc9ac('0x23')](respondWithFilteredResult(_0x25be6f,_0x4ab168))[_0xc9ac('0x43')](handleError(_0x25be6f,null));};exports[_0xc9ac('0x44')]=function(_0x19ae3c,_0x4ed64e){var _0x1392a4={'raw':![],'where':{'id':_0x19ae3c[_0xc9ac('0x45')]['id']}},_0x1ec79f={};_0x1ec79f[_0xc9ac('0x33')]=_[_0xc9ac('0x2f')](db[_0xc9ac('0x2a')][_0xc9ac('0x2b')]);_0x1ec79f['query']=_[_0xc9ac('0x2f')](_0x19ae3c[_0xc9ac('0x30')]);_0x1ec79f['filters']=_[_0xc9ac('0x32')](_0x1ec79f[_0xc9ac('0x33')],_0x1ec79f[_0xc9ac('0x30')]);_0x1392a4[_0xc9ac('0x34')]=_[_0xc9ac('0x32')](_0x1ec79f['model'],qs['fields'](_0x19ae3c[_0xc9ac('0x30')]['fields']));_0x1392a4[_0xc9ac('0x34')]=_0x1392a4[_0xc9ac('0x34')][_0xc9ac('0x36')]?_0x1392a4['attributes']:_0x1ec79f['model'];if(_0x19ae3c['query'][_0xc9ac('0x3f')]){_0x1392a4[_0xc9ac('0x40')]=[{'all':!![]}];}_0x1392a4=_[_0xc9ac('0x46')]({},_0x1392a4,_0x19ae3c[_0xc9ac('0x3e')]);return db[_0xc9ac('0x2a')][_0xc9ac('0x47')](_0x1392a4)[_0xc9ac('0x23')](handleEntityNotFound(_0x4ed64e,null))['then'](respondWithResult(_0x4ed64e,null))[_0xc9ac('0x43')](handleError(_0x4ed64e,null));};exports[_0xc9ac('0x48')]=function(_0x58c5de,_0x749307){return db[_0xc9ac('0x2a')][_0xc9ac('0x48')](_0x58c5de[_0xc9ac('0x49')],{})['then'](respondWithResult(_0x749307,0xc9))[_0xc9ac('0x43')](handleError(_0x749307,null));};exports[_0xc9ac('0x22')]=function(_0x28283b,_0x5d85a7){if(_0x28283b['body']['id']){delete _0x28283b[_0xc9ac('0x49')]['id'];}return db[_0xc9ac('0x2a')][_0xc9ac('0x47')]({'where':{'id':_0x28283b[_0xc9ac('0x45')]['id']}})[_0xc9ac('0x23')](handleEntityNotFound(_0x5d85a7,null))[_0xc9ac('0x23')](saveUpdates(_0x28283b['body'],null))['then'](respondWithResult(_0x5d85a7,null))['catch'](handleError(_0x5d85a7,null));};exports[_0xc9ac('0x24')]=function(_0x4ae1bf,_0x375573){return db[_0xc9ac('0x2a')]['find']({'where':{'id':_0x4ae1bf['params']['id']}})[_0xc9ac('0x23')](handleEntityNotFound(_0x375573,null))['then'](removeEntity(_0x375573,null))['catch'](handleError(_0x375573,null));};exports[_0xc9ac('0x4a')]=function(_0x5e02b1,_0x398d5b,_0x5e5804){return db['Condition'][_0xc9ac('0x47')]({'where':{'id':_0x5e02b1[_0xc9ac('0x45')]['id']}})[_0xc9ac('0x23')](handleEntityNotFound(_0x398d5b,null))['then'](function(_0x5e55c2){if(_0x5e55c2){return _0x5e55c2['addConditions'](_0x5e02b1['body'][_0xc9ac('0x4b')],_['omit'](_0x5e02b1['body'],[_0xc9ac('0x4b'),'id'])||{});}})[_0xc9ac('0x23')](respondWithResult(_0x398d5b,null))['catch'](handleError(_0x398d5b,null));};exports[_0xc9ac('0x4c')]=function(_0x5f30e4,_0xe5857,_0x5be314){var _0x5c3910={};var _0x5d6d93={};var _0xf3fecd;var _0x19b83b;return db[_0xc9ac('0x2a')][_0xc9ac('0x4d')]({'where':{'id':_0x5f30e4[_0xc9ac('0x45')]['id']}})[_0xc9ac('0x23')](handleEntityNotFound(_0xe5857,null))['then'](function(_0x500548){if(_0x500548){_0xf3fecd=_0x500548;_0x5d6d93[_0xc9ac('0x33')]=_['keys'](db['Condition'][_0xc9ac('0x2b')]);_0x5d6d93[_0xc9ac('0x30')]=_[_0xc9ac('0x2f')](_0x5f30e4[_0xc9ac('0x30')]);_0x5d6d93['filters']=_[_0xc9ac('0x32')](_0x5d6d93[_0xc9ac('0x33')],_0x5d6d93[_0xc9ac('0x30')]);_0x5c3910[_0xc9ac('0x34')]=_[_0xc9ac('0x32')](_0x5d6d93[_0xc9ac('0x33')],qs['fields'](_0x5f30e4[_0xc9ac('0x30')][_0xc9ac('0x35')]));_0x5c3910[_0xc9ac('0x34')]=_0x5c3910[_0xc9ac('0x34')]['length']?_0x5c3910[_0xc9ac('0x34')]:_0x5d6d93[_0xc9ac('0x33')];_0x5c3910['order']=qs[_0xc9ac('0x39')](_0x5f30e4[_0xc9ac('0x30')][_0xc9ac('0x39')]);_0x5c3910[_0xc9ac('0x3c')]=qs[_0xc9ac('0x31')](_[_0xc9ac('0x3a')](_0x5f30e4[_0xc9ac('0x30')],_0x5d6d93[_0xc9ac('0x31')]));if(_0x5f30e4[_0xc9ac('0x30')][_0xc9ac('0x3b')]){_0x5c3910[_0xc9ac('0x3c')]=_[_0xc9ac('0x46')](_0x5c3910[_0xc9ac('0x3c')],{'$or':_[_0xc9ac('0x2e')](_0x5c3910[_0xc9ac('0x34')],function(_0x3167ff){var _0xe2fb88={};_0xe2fb88[_0x3167ff]={'$like':'%'+_0x5f30e4[_0xc9ac('0x30')][_0xc9ac('0x3b')]+'%'};return _0xe2fb88;})});}_0x5c3910=_[_0xc9ac('0x46')]({},_0x5c3910,_0x5f30e4[_0xc9ac('0x3e')]);return _0xf3fecd[_0xc9ac('0x4c')](_0x5c3910);}})['then'](function(_0x56c01a){if(_0x56c01a){_0x19b83b=_0x56c01a[_0xc9ac('0x36')];if(!_0x5f30e4[_0xc9ac('0x30')][_0xc9ac('0x37')](_0xc9ac('0x38'))){_0x5c3910[_0xc9ac('0x1c')]=qs['limit'](_0x5f30e4['query']['limit']);_0x5c3910['offset']=qs['offset'](_0x5f30e4[_0xc9ac('0x30')][_0xc9ac('0x1b')]);}return _0xf3fecd[_0xc9ac('0x4c')](_0x5c3910);}})[_0xc9ac('0x23')](function(_0x1f334c){if(_0x1f334c){return _0x1f334c?{'count':_0x19b83b,'rows':_0x1f334c}:null;}})[_0xc9ac('0x23')](respondWithResult(_0xe5857,null))[_0xc9ac('0x43')](handleError(_0xe5857,null));};exports[_0xc9ac('0x4e')]=function(_0x1f005a,_0xd1cc47,_0x3236d1){return db[_0xc9ac('0x4f')][_0xc9ac('0x47')]({'where':{'id':_0x1f005a[_0xc9ac('0x45')]['id']}})[_0xc9ac('0x23')](handleEntityNotFound(_0xd1cc47,null))[_0xc9ac('0x23')](function(_0x4f6df1){if(_0x4f6df1){return _0x4f6df1[_0xc9ac('0x4e')](_0x1f005a[_0xc9ac('0x49')][_0xc9ac('0x4b')],_['omit'](_0x1f005a[_0xc9ac('0x49')],[_0xc9ac('0x4b'),'id'])||{});}})['then'](respondWithResult(_0xd1cc47,null))[_0xc9ac('0x43')](handleError(_0xd1cc47,null));};exports[_0xc9ac('0x50')]=function(_0x3c4d0a,_0xb8da9b,_0x264cf7){var _0x4d18e5={};var _0x121bcf={};var _0x51fb6d;var _0x5ec044;return db[_0xc9ac('0x2a')][_0xc9ac('0x4d')]({'where':{'id':_0x3c4d0a[_0xc9ac('0x45')]['id']}})[_0xc9ac('0x23')](handleEntityNotFound(_0xb8da9b,null))[_0xc9ac('0x23')](function(_0x568003){if(_0x568003){_0x51fb6d=_0x568003;_0x121bcf[_0xc9ac('0x33')]=_[_0xc9ac('0x2f')](db[_0xc9ac('0x4f')][_0xc9ac('0x2b')]);_0x121bcf[_0xc9ac('0x30')]=_['keys'](_0x3c4d0a['query']);_0x121bcf[_0xc9ac('0x31')]=_[_0xc9ac('0x32')](_0x121bcf[_0xc9ac('0x33')],_0x121bcf[_0xc9ac('0x30')]);_0x4d18e5[_0xc9ac('0x34')]=_[_0xc9ac('0x32')](_0x121bcf[_0xc9ac('0x33')],qs[_0xc9ac('0x35')](_0x3c4d0a[_0xc9ac('0x30')][_0xc9ac('0x35')]));_0x4d18e5[_0xc9ac('0x34')]=_0x4d18e5[_0xc9ac('0x34')][_0xc9ac('0x36')]?_0x4d18e5[_0xc9ac('0x34')]:_0x121bcf['model'];_0x4d18e5[_0xc9ac('0x51')]=qs[_0xc9ac('0x39')](_0x3c4d0a[_0xc9ac('0x30')][_0xc9ac('0x39')]);_0x4d18e5['where']=qs[_0xc9ac('0x31')](_[_0xc9ac('0x3a')](_0x3c4d0a[_0xc9ac('0x30')],_0x121bcf['filters']));if(_0x3c4d0a[_0xc9ac('0x30')][_0xc9ac('0x3b')]){_0x4d18e5[_0xc9ac('0x3c')]=_[_0xc9ac('0x46')](_0x4d18e5[_0xc9ac('0x3c')],{'$or':_[_0xc9ac('0x2e')](_0x4d18e5['attributes'],function(_0x43014a){var _0x441be7={};_0x441be7[_0x43014a]={'$like':'%'+_0x3c4d0a[_0xc9ac('0x30')][_0xc9ac('0x3b')]+'%'};return _0x441be7;})});}_0x4d18e5=_[_0xc9ac('0x46')]({},_0x4d18e5,_0x3c4d0a['options']);return _0x51fb6d[_0xc9ac('0x50')](_0x4d18e5);}})[_0xc9ac('0x23')](function(_0x7b2e4a){if(_0x7b2e4a){_0x5ec044=_0x7b2e4a[_0xc9ac('0x36')];if(!_0x3c4d0a[_0xc9ac('0x30')][_0xc9ac('0x37')](_0xc9ac('0x38'))){_0x4d18e5[_0xc9ac('0x1c')]=qs[_0xc9ac('0x1c')](_0x3c4d0a[_0xc9ac('0x30')][_0xc9ac('0x1c')]);_0x4d18e5[_0xc9ac('0x1b')]=qs[_0xc9ac('0x1b')](_0x3c4d0a[_0xc9ac('0x30')][_0xc9ac('0x1b')]);}return _0x51fb6d[_0xc9ac('0x50')](_0x4d18e5);}})[_0xc9ac('0x23')](function(_0x473c50){if(_0x473c50){return _0x473c50?{'count':_0x5ec044,'rows':_0x473c50}:null;}})[_0xc9ac('0x23')](respondWithResult(_0xb8da9b,null))[_0xc9ac('0x43')](handleError(_0xb8da9b,null));};