Built motion from commit (unavailable).|2.5.29
[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 _0x754a=['error','stack','name','send','index','Automation','rawAttributes','type','key','model','map','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','count','includeAll','include','rows','show','find','catch','create','body','update','params','destroy','addConditions','ids','omit','getConditions','findOne','Condition','addActions','Action','getActions','eml-format','rimraf','zip-dir','moment','bluebird','mustache','util','path','sox','to-csv','ejs','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','set','Content-Range','apply','save','then'];(function(_0x356991,_0x4a9731){var _0x1ce35b=function(_0x4cd306){while(--_0x4cd306){_0x356991['push'](_0x356991['shift']());}};_0x1ce35b(++_0x4a9731);}(_0x754a,0x1d5));var _0xa754=function(_0xa8883,_0x1f107f){_0xa8883=_0xa8883-0x0;var _0x479426=_0x754a[_0xa8883];return _0x479426;};'use strict';var emlformat=require(_0xa754('0x0'));var rimraf=require(_0xa754('0x1'));var zipdir=require(_0xa754('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0xa754('0x3'));var BPromise=require(_0xa754('0x4'));var Mustache=require(_0xa754('0x5'));var util=require(_0xa754('0x6'));var path=require(_0xa754('0x7'));var sox=require(_0xa754('0x8'));var csv=require(_0xa754('0x9'));var ejs=require(_0xa754('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require('squel');var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0xa754('0xb'));var toCsv=require(_0xa754('0x9'));var querystring=require(_0xa754('0xc'));var Papa=require(_0xa754('0xd'));var Redis=require(_0xa754('0xe'));var authService=require(_0xa754('0xf'));var qs=require(_0xa754('0x10'));var as=require(_0xa754('0x11'));var hardwareService=require(_0xa754('0x12'));var logger=require(_0xa754('0x13'))('api');var utils=require(_0xa754('0x14'));var config=require('../../config/environment');var licenseUtil=require(_0xa754('0x15'));var db=require(_0xa754('0x16'))['db'];function respondWithStatusCode(_0x5b1f55,_0x186f98){_0x186f98=_0x186f98||0xcc;return function(_0x3f237b){if(_0x3f237b){return _0x5b1f55[_0xa754('0x17')](_0x186f98);}return _0x5b1f55[_0xa754('0x18')](_0x186f98)[_0xa754('0x19')]();};}function respondWithResult(_0x276482,_0x44d740){_0x44d740=_0x44d740||0xc8;return function(_0x539a54){if(_0x539a54){return _0x276482[_0xa754('0x18')](_0x44d740)[_0xa754('0x1a')](_0x539a54);}};}function respondWithFilteredResult(_0x462f29,_0x1b77d3){return function(_0x5be3cd){if(_0x5be3cd){var _0x2a4ca1=typeof _0x1b77d3[_0xa754('0x1b')]===_0xa754('0x1c')&&typeof _0x1b77d3[_0xa754('0x1d')]===_0xa754('0x1c');var _0x3487d3=_0x5be3cd['count'];var _0x4d54ff=_0x2a4ca1?0x0:_0x1b77d3[_0xa754('0x1b')];var _0x3abc2f=_0x2a4ca1?_0x5be3cd['count']:_0x1b77d3[_0xa754('0x1b')]+_0x1b77d3['limit'];var _0x4ca9ea;if(_0x3abc2f>=_0x3487d3){_0x3abc2f=_0x3487d3;_0x4ca9ea=0xc8;}else{_0x4ca9ea=0xce;}_0x462f29['status'](_0x4ca9ea);return _0x462f29[_0xa754('0x1e')](_0xa754('0x1f'),_0x4d54ff+'-'+_0x3abc2f+'/'+_0x3487d3)['json'](_0x5be3cd);}return null;};}function patchUpdates(_0x1c2b7c){return function(_0x2287c5){try{jsonpatch[_0xa754('0x20')](_0x2287c5,_0x1c2b7c,!![]);}catch(_0x5b4b7c){return BPromise['reject'](_0x5b4b7c);}return _0x2287c5[_0xa754('0x21')]();};}function saveUpdates(_0x1bb3c2,_0x4f517d){return function(_0x69f30a){if(_0x69f30a){return _0x69f30a['update'](_0x1bb3c2)[_0xa754('0x22')](function(_0x7f343f){return _0x7f343f;});}return null;};}function removeEntity(_0x3a1bfc,_0x530c45){return function(_0x565002){if(_0x565002){return _0x565002['destroy']()[_0xa754('0x22')](function(){_0x3a1bfc['status'](0xcc)[_0xa754('0x19')]();});}};}function handleEntityNotFound(_0x3d5ee6,_0xbd7bec){return function(_0x33fb21){if(!_0x33fb21){_0x3d5ee6[_0xa754('0x17')](0x194);}return _0x33fb21;};}function handleError(_0xe18d44,_0x25f172){_0x25f172=_0x25f172||0x1f4;return function(_0x31bf51){logger[_0xa754('0x23')](_0x31bf51[_0xa754('0x24')]);if(_0x31bf51[_0xa754('0x25')]){delete _0x31bf51[_0xa754('0x25')];}_0xe18d44[_0xa754('0x18')](_0x25f172)[_0xa754('0x26')](_0x31bf51);};}exports[_0xa754('0x27')]=function(_0x456d33,_0x43ccb4){var _0x108a3e={},_0x3bdab6={},_0x440ece={'count':0x0,'rows':[]};var _0x52bf2f=_['map'](db[_0xa754('0x28')][_0xa754('0x29')],function(_0x4ef76c){return{'name':_0x4ef76c['fieldName'],'type':_0x4ef76c[_0xa754('0x2a')][_0xa754('0x2b')]};});_0x3bdab6[_0xa754('0x2c')]=_[_0xa754('0x2d')](_0x52bf2f,'name');_0x3bdab6[_0xa754('0x2e')]=_[_0xa754('0x2f')](_0x456d33[_0xa754('0x2e')]);_0x3bdab6[_0xa754('0x30')]=_[_0xa754('0x31')](_0x3bdab6[_0xa754('0x2c')],_0x3bdab6['query']);_0x108a3e['attributes']=_[_0xa754('0x31')](_0x3bdab6[_0xa754('0x2c')],qs[_0xa754('0x32')](_0x456d33[_0xa754('0x2e')][_0xa754('0x32')]));_0x108a3e[_0xa754('0x33')]=_0x108a3e[_0xa754('0x33')][_0xa754('0x34')]?_0x108a3e[_0xa754('0x33')]:_0x3bdab6[_0xa754('0x2c')];if(!_0x456d33[_0xa754('0x2e')][_0xa754('0x35')](_0xa754('0x36'))){_0x108a3e[_0xa754('0x1d')]=qs[_0xa754('0x1d')](_0x456d33['query'][_0xa754('0x1d')]);_0x108a3e[_0xa754('0x1b')]=qs[_0xa754('0x1b')](_0x456d33[_0xa754('0x2e')][_0xa754('0x1b')]);}_0x108a3e[_0xa754('0x37')]=qs[_0xa754('0x38')](_0x456d33[_0xa754('0x2e')][_0xa754('0x38')]);_0x108a3e[_0xa754('0x39')]=qs[_0xa754('0x30')](_[_0xa754('0x3a')](_0x456d33[_0xa754('0x2e')],_0x3bdab6[_0xa754('0x30')]),_0x52bf2f);if(_0x456d33['query'][_0xa754('0x3b')]){_0x108a3e[_0xa754('0x39')]=_[_0xa754('0x3c')](_0x108a3e[_0xa754('0x39')],{'$or':_[_0xa754('0x2d')](_0x52bf2f,function(_0x78e7ed){if(_0x78e7ed['type']!==_0xa754('0x3d')){var _0x23c2d1={};_0x23c2d1[_0x78e7ed['name']]={'$like':'%'+_0x456d33[_0xa754('0x2e')][_0xa754('0x3b')]+'%'};return _0x23c2d1;}})});}_0x108a3e=_[_0xa754('0x3c')]({},_0x108a3e,_0x456d33[_0xa754('0x3e')]);var _0x42c365={'where':_0x108a3e['where']};return db['Automation']['count'](_0x42c365)[_0xa754('0x22')](function(_0x4df2da){_0x440ece[_0xa754('0x3f')]=_0x4df2da;if(_0x456d33[_0xa754('0x2e')][_0xa754('0x40')]){_0x108a3e[_0xa754('0x41')]=[{'all':!![]}];}return db['Automation']['findAll'](_0x108a3e);})['then'](function(_0x3d144d){_0x440ece[_0xa754('0x42')]=_0x3d144d;return _0x440ece;})[_0xa754('0x22')](respondWithFilteredResult(_0x43ccb4,_0x108a3e))['catch'](handleError(_0x43ccb4,null));};exports[_0xa754('0x43')]=function(_0x48ec62,_0x4ccf95){var _0xe17eb6={'raw':![],'where':{'id':_0x48ec62['params']['id']}},_0x57ff2b={};_0x57ff2b[_0xa754('0x2c')]=_[_0xa754('0x2f')](db[_0xa754('0x28')][_0xa754('0x29')]);_0x57ff2b[_0xa754('0x2e')]=_[_0xa754('0x2f')](_0x48ec62[_0xa754('0x2e')]);_0x57ff2b[_0xa754('0x30')]=_[_0xa754('0x31')](_0x57ff2b[_0xa754('0x2c')],_0x57ff2b[_0xa754('0x2e')]);_0xe17eb6[_0xa754('0x33')]=_[_0xa754('0x31')](_0x57ff2b[_0xa754('0x2c')],qs[_0xa754('0x32')](_0x48ec62[_0xa754('0x2e')][_0xa754('0x32')]));_0xe17eb6[_0xa754('0x33')]=_0xe17eb6['attributes']['length']?_0xe17eb6[_0xa754('0x33')]:_0x57ff2b['model'];if(_0x48ec62[_0xa754('0x2e')]['includeAll']){_0xe17eb6[_0xa754('0x41')]=[{'all':!![]}];}_0xe17eb6=_[_0xa754('0x3c')]({},_0xe17eb6,_0x48ec62[_0xa754('0x3e')]);return db[_0xa754('0x28')][_0xa754('0x44')](_0xe17eb6)[_0xa754('0x22')](handleEntityNotFound(_0x4ccf95,null))[_0xa754('0x22')](respondWithResult(_0x4ccf95,null))[_0xa754('0x45')](handleError(_0x4ccf95,null));};exports[_0xa754('0x46')]=function(_0x251fbd,_0x1e2730){return db['Automation']['create'](_0x251fbd[_0xa754('0x47')],{})[_0xa754('0x22')](respondWithResult(_0x1e2730,0xc9))[_0xa754('0x45')](handleError(_0x1e2730,null));};exports[_0xa754('0x48')]=function(_0x4f4400,_0x192473){if(_0x4f4400[_0xa754('0x47')]['id']){delete _0x4f4400[_0xa754('0x47')]['id'];}return db[_0xa754('0x28')][_0xa754('0x44')]({'where':{'id':_0x4f4400[_0xa754('0x49')]['id']}})[_0xa754('0x22')](handleEntityNotFound(_0x192473,null))['then'](saveUpdates(_0x4f4400[_0xa754('0x47')],null))['then'](respondWithResult(_0x192473,null))['catch'](handleError(_0x192473,null));};exports[_0xa754('0x4a')]=function(_0x8e7d4a,_0x218179){return db[_0xa754('0x28')]['find']({'where':{'id':_0x8e7d4a[_0xa754('0x49')]['id']}})['then'](handleEntityNotFound(_0x218179,null))[_0xa754('0x22')](removeEntity(_0x218179,null))[_0xa754('0x45')](handleError(_0x218179,null));};exports[_0xa754('0x4b')]=function(_0x5dfae9,_0x4e1f02,_0xdd79a2){return db['Condition'][_0xa754('0x44')]({'where':{'id':_0x5dfae9[_0xa754('0x49')]['id']}})[_0xa754('0x22')](handleEntityNotFound(_0x4e1f02,null))[_0xa754('0x22')](function(_0x545f00){if(_0x545f00){return _0x545f00['addConditions'](_0x5dfae9[_0xa754('0x47')][_0xa754('0x4c')],_[_0xa754('0x4d')](_0x5dfae9[_0xa754('0x47')],[_0xa754('0x4c'),'id'])||{});}})['then'](respondWithResult(_0x4e1f02,null))[_0xa754('0x45')](handleError(_0x4e1f02,null));};exports[_0xa754('0x4e')]=function(_0x2b3197,_0x42fd35,_0x2dbcbe){var _0x5015a1={};var _0x40c320={};var _0x136c27;var _0x33a30a;return db['Automation'][_0xa754('0x4f')]({'where':{'id':_0x2b3197[_0xa754('0x49')]['id']}})[_0xa754('0x22')](handleEntityNotFound(_0x42fd35,null))[_0xa754('0x22')](function(_0x43c191){if(_0x43c191){_0x136c27=_0x43c191;_0x40c320[_0xa754('0x2c')]=_['keys'](db[_0xa754('0x50')]['rawAttributes']);_0x40c320['query']=_[_0xa754('0x2f')](_0x2b3197[_0xa754('0x2e')]);_0x40c320[_0xa754('0x30')]=_[_0xa754('0x31')](_0x40c320[_0xa754('0x2c')],_0x40c320[_0xa754('0x2e')]);_0x5015a1[_0xa754('0x33')]=_[_0xa754('0x31')](_0x40c320['model'],qs['fields'](_0x2b3197[_0xa754('0x2e')][_0xa754('0x32')]));_0x5015a1[_0xa754('0x33')]=_0x5015a1[_0xa754('0x33')][_0xa754('0x34')]?_0x5015a1[_0xa754('0x33')]:_0x40c320[_0xa754('0x2c')];_0x5015a1[_0xa754('0x37')]=qs[_0xa754('0x38')](_0x2b3197[_0xa754('0x2e')][_0xa754('0x38')]);_0x5015a1[_0xa754('0x39')]=qs[_0xa754('0x30')](_[_0xa754('0x3a')](_0x2b3197[_0xa754('0x2e')],_0x40c320['filters']));if(_0x2b3197[_0xa754('0x2e')][_0xa754('0x3b')]){_0x5015a1['where']=_[_0xa754('0x3c')](_0x5015a1['where'],{'$or':_[_0xa754('0x2d')](_0x5015a1[_0xa754('0x33')],function(_0x2bd59d){var _0x35fb2e={};_0x35fb2e[_0x2bd59d]={'$like':'%'+_0x2b3197[_0xa754('0x2e')][_0xa754('0x3b')]+'%'};return _0x35fb2e;})});}_0x5015a1=_[_0xa754('0x3c')]({},_0x5015a1,_0x2b3197[_0xa754('0x3e')]);return _0x136c27[_0xa754('0x4e')](_0x5015a1);}})[_0xa754('0x22')](function(_0x380ca7){if(_0x380ca7){_0x33a30a=_0x380ca7['length'];if(!_0x2b3197[_0xa754('0x2e')][_0xa754('0x35')](_0xa754('0x36'))){_0x5015a1[_0xa754('0x1d')]=qs[_0xa754('0x1d')](_0x2b3197[_0xa754('0x2e')][_0xa754('0x1d')]);_0x5015a1[_0xa754('0x1b')]=qs[_0xa754('0x1b')](_0x2b3197['query'][_0xa754('0x1b')]);}return _0x136c27[_0xa754('0x4e')](_0x5015a1);}})[_0xa754('0x22')](function(_0xa357b6){if(_0xa357b6){return _0xa357b6?{'count':_0x33a30a,'rows':_0xa357b6}:null;}})[_0xa754('0x22')](respondWithResult(_0x42fd35,null))[_0xa754('0x45')](handleError(_0x42fd35,null));};exports[_0xa754('0x51')]=function(_0x43a023,_0x521a55,_0x37ec7a){return db[_0xa754('0x52')][_0xa754('0x44')]({'where':{'id':_0x43a023[_0xa754('0x49')]['id']}})[_0xa754('0x22')](handleEntityNotFound(_0x521a55,null))['then'](function(_0x4f94e7){if(_0x4f94e7){return _0x4f94e7[_0xa754('0x51')](_0x43a023[_0xa754('0x47')]['ids'],_[_0xa754('0x4d')](_0x43a023['body'],[_0xa754('0x4c'),'id'])||{});}})[_0xa754('0x22')](respondWithResult(_0x521a55,null))['catch'](handleError(_0x521a55,null));};exports[_0xa754('0x53')]=function(_0xabec72,_0x27e974,_0x47f9f2){var _0x451a79={};var _0x38f8e1={};var _0x2c8727;var _0x431499;return db[_0xa754('0x28')]['findOne']({'where':{'id':_0xabec72[_0xa754('0x49')]['id']}})[_0xa754('0x22')](handleEntityNotFound(_0x27e974,null))[_0xa754('0x22')](function(_0x353521){if(_0x353521){_0x2c8727=_0x353521;_0x38f8e1[_0xa754('0x2c')]=_['keys'](db[_0xa754('0x52')][_0xa754('0x29')]);_0x38f8e1[_0xa754('0x2e')]=_['keys'](_0xabec72[_0xa754('0x2e')]);_0x38f8e1[_0xa754('0x30')]=_[_0xa754('0x31')](_0x38f8e1[_0xa754('0x2c')],_0x38f8e1[_0xa754('0x2e')]);_0x451a79[_0xa754('0x33')]=_[_0xa754('0x31')](_0x38f8e1[_0xa754('0x2c')],qs['fields'](_0xabec72[_0xa754('0x2e')][_0xa754('0x32')]));_0x451a79[_0xa754('0x33')]=_0x451a79[_0xa754('0x33')][_0xa754('0x34')]?_0x451a79[_0xa754('0x33')]:_0x38f8e1['model'];_0x451a79[_0xa754('0x37')]=qs[_0xa754('0x38')](_0xabec72[_0xa754('0x2e')][_0xa754('0x38')]);_0x451a79[_0xa754('0x39')]=qs['filters'](_[_0xa754('0x3a')](_0xabec72[_0xa754('0x2e')],_0x38f8e1[_0xa754('0x30')]));if(_0xabec72[_0xa754('0x2e')][_0xa754('0x3b')]){_0x451a79['where']=_[_0xa754('0x3c')](_0x451a79['where'],{'$or':_[_0xa754('0x2d')](_0x451a79[_0xa754('0x33')],function(_0x33c727){var _0x48ea63={};_0x48ea63[_0x33c727]={'$like':'%'+_0xabec72[_0xa754('0x2e')][_0xa754('0x3b')]+'%'};return _0x48ea63;})});}_0x451a79=_[_0xa754('0x3c')]({},_0x451a79,_0xabec72['options']);return _0x2c8727['getActions'](_0x451a79);}})[_0xa754('0x22')](function(_0x2c556c){if(_0x2c556c){_0x431499=_0x2c556c[_0xa754('0x34')];if(!_0xabec72[_0xa754('0x2e')][_0xa754('0x35')](_0xa754('0x36'))){_0x451a79[_0xa754('0x1d')]=qs[_0xa754('0x1d')](_0xabec72[_0xa754('0x2e')]['limit']);_0x451a79[_0xa754('0x1b')]=qs['offset'](_0xabec72[_0xa754('0x2e')][_0xa754('0x1b')]);}return _0x2c8727['getActions'](_0x451a79);}})[_0xa754('0x22')](function(_0x37ff35){if(_0x37ff35){return _0x37ff35?{'count':_0x431499,'rows':_0x37ff35}:null;}})[_0xa754('0x22')](respondWithResult(_0x27e974,null))['catch'](handleError(_0x27e974,null));};