24602d013a286399807ba90bb9bfe31d0cb33184
[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 _0x88bf=['fields','attributes','length','hasOwnProperty','order','sort','where','filter','merge','VIRTUAL','options','Automation','include','rows','show','params','includeAll','catch','create','body','find','addConditions','Condition','ids','omit','findOne','pick','nolimit','getConditions','Action','addActions','getActions','html-pdf','eml-format','rimraf','zip-dir','request-promise','mustache','path','sox','ejs','lodash','squel','crypto','jsforce','to-csv','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','reject','update','then','destroy','error','stack','name','send','map','fieldName','type','key','model','query','keys','filters','intersection'];(function(_0x500896,_0x39a5ed){var _0x2a3c21=function(_0x21e2f8){while(--_0x21e2f8){_0x500896['push'](_0x500896['shift']());}};_0x2a3c21(++_0x39a5ed);}(_0x88bf,0x116));var _0xf88b=function(_0x4adfa4,_0x121c5a){_0x4adfa4=_0x4adfa4-0x0;var _0x14cec1=_0x88bf[_0x4adfa4];return _0x14cec1;};'use strict';var pdf=require(_0xf88b('0x0'));var emlformat=require(_0xf88b('0x1'));var rimraf=require(_0xf88b('0x2'));var zipdir=require(_0xf88b('0x3'));var jsonpatch=require('fast-json-patch');var rp=require(_0xf88b('0x4'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0xf88b('0x5'));var util=require('util');var path=require(_0xf88b('0x6'));var sox=require(_0xf88b('0x7'));var csv=require('to-csv');var ejs=require(_0xf88b('0x8'));var fs=require('fs');var _=require(_0xf88b('0x9'));var squel=require(_0xf88b('0xa'));var crypto=require(_0xf88b('0xb'));var jsforce=require(_0xf88b('0xc'));var deskjs=require('desk.js');var toCsv=require(_0xf88b('0xd'));var querystring=require(_0xf88b('0xe'));var Papa=require('papaparse');var Redis=require(_0xf88b('0xf'));var authService=require(_0xf88b('0x10'));var qs=require(_0xf88b('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xf88b('0x12'));var logger=require(_0xf88b('0x13'))('api');var utils=require(_0xf88b('0x14'));var config=require(_0xf88b('0x15'));var db=require(_0xf88b('0x16'))['db'];function respondWithStatusCode(_0x4e725d,_0x1864a7){_0x1864a7=_0x1864a7||0xcc;return function(_0x46089a){if(_0x46089a){return _0x4e725d[_0xf88b('0x17')](_0x1864a7);}return _0x4e725d[_0xf88b('0x18')](_0x1864a7)[_0xf88b('0x19')]();};}function respondWithResult(_0x524943,_0x30ef23){_0x30ef23=_0x30ef23||0xc8;return function(_0x39ada0){if(_0x39ada0){return _0x524943[_0xf88b('0x18')](_0x30ef23)[_0xf88b('0x1a')](_0x39ada0);}};}function respondWithFilteredResult(_0x59aa73,_0x3ac3e3){return function(_0x32338e){if(_0x32338e){var _0x48df5f=_0x32338e[_0xf88b('0x1b')],_0xf9b327=_0x3ac3e3[_0xf88b('0x1c')],_0x258237=_0x3ac3e3[_0xf88b('0x1c')]+_0x3ac3e3[_0xf88b('0x1d')],_0x2e8efa;if(_0x258237>=_0x48df5f){_0x258237=_0x48df5f;_0x2e8efa=0xc8;}else{_0x2e8efa=0xce;}_0x59aa73['status'](_0x2e8efa);return _0x59aa73[_0xf88b('0x1e')](_0xf88b('0x1f'),_0xf9b327+'-'+_0x258237+'/'+_0x48df5f)[_0xf88b('0x1a')](_0x32338e);}return null;};}function patchUpdates(_0x420575){return function(_0x48de9c){try{jsonpatch[_0xf88b('0x20')](_0x48de9c,_0x420575,!![]);}catch(_0xc953c6){return BPromise[_0xf88b('0x21')](_0xc953c6);}return _0x48de9c['save']();};}function saveUpdates(_0x58d0b7,_0x174c04){return function(_0x1796c1){if(_0x1796c1){return _0x1796c1[_0xf88b('0x22')](_0x58d0b7)[_0xf88b('0x23')](function(_0x37fad4){return _0x37fad4;});}return null;};}function removeEntity(_0x389ab5,_0x5d07e5){return function(_0x4e2c0e){if(_0x4e2c0e){return _0x4e2c0e[_0xf88b('0x24')]()[_0xf88b('0x23')](function(){_0x389ab5[_0xf88b('0x18')](0xcc)[_0xf88b('0x19')]();});}};}function handleEntityNotFound(_0x3184b5,_0x132c66){return function(_0x16b6ff){if(!_0x16b6ff){_0x3184b5['sendStatus'](0x194);}return _0x16b6ff;};}function handleError(_0x100f43,_0x4acc3f){_0x4acc3f=_0x4acc3f||0x1f4;return function(_0x2ee6f2){logger[_0xf88b('0x25')](_0x2ee6f2[_0xf88b('0x26')]);if(_0x2ee6f2[_0xf88b('0x27')]){delete _0x2ee6f2['name'];}_0x100f43['status'](_0x4acc3f)[_0xf88b('0x28')](_0x2ee6f2);};}exports['index']=function(_0x470a91,_0x2e9f20){var _0x5daad3={},_0x4e8914={},_0x45ddb6={'count':0x0,'rows':[]};var _0x57cc09=_[_0xf88b('0x29')](db['Automation']['rawAttributes'],function(_0x50ea05){return{'name':_0x50ea05[_0xf88b('0x2a')],'type':_0x50ea05[_0xf88b('0x2b')][_0xf88b('0x2c')]};});_0x4e8914[_0xf88b('0x2d')]=_[_0xf88b('0x29')](_0x57cc09,_0xf88b('0x27'));_0x4e8914[_0xf88b('0x2e')]=_[_0xf88b('0x2f')](_0x470a91[_0xf88b('0x2e')]);_0x4e8914[_0xf88b('0x30')]=_[_0xf88b('0x31')](_0x4e8914[_0xf88b('0x2d')],_0x4e8914[_0xf88b('0x2e')]);_0x5daad3['attributes']=_['intersection'](_0x4e8914[_0xf88b('0x2d')],qs[_0xf88b('0x32')](_0x470a91[_0xf88b('0x2e')]['fields']));_0x5daad3[_0xf88b('0x33')]=_0x5daad3[_0xf88b('0x33')][_0xf88b('0x34')]?_0x5daad3[_0xf88b('0x33')]:_0x4e8914[_0xf88b('0x2d')];if(!_0x470a91[_0xf88b('0x2e')][_0xf88b('0x35')]('nolimit')){_0x5daad3[_0xf88b('0x1d')]=qs[_0xf88b('0x1d')](_0x470a91['query'][_0xf88b('0x1d')]);_0x5daad3[_0xf88b('0x1c')]=qs[_0xf88b('0x1c')](_0x470a91[_0xf88b('0x2e')][_0xf88b('0x1c')]);}_0x5daad3[_0xf88b('0x36')]=qs[_0xf88b('0x37')](_0x470a91[_0xf88b('0x2e')]['sort']);_0x5daad3[_0xf88b('0x38')]=qs['filters'](_['pick'](_0x470a91['query'],_0x4e8914[_0xf88b('0x30')]),_0x57cc09);if(_0x470a91[_0xf88b('0x2e')][_0xf88b('0x39')]){_0x5daad3[_0xf88b('0x38')]=_[_0xf88b('0x3a')](_0x5daad3[_0xf88b('0x38')],{'$or':_['map'](_0x57cc09,function(_0x54ac93){if(_0x54ac93[_0xf88b('0x2b')]!==_0xf88b('0x3b')){var _0x543800={};_0x543800[_0x54ac93['name']]={'$like':'%'+_0x470a91[_0xf88b('0x2e')][_0xf88b('0x39')]+'%'};return _0x543800;}})});}_0x5daad3=_[_0xf88b('0x3a')]({},_0x5daad3,_0x470a91[_0xf88b('0x3c')]);var _0x1fa721={'where':_0x5daad3[_0xf88b('0x38')]};return db[_0xf88b('0x3d')][_0xf88b('0x1b')](_0x1fa721)['then'](function(_0x5bad95){_0x45ddb6[_0xf88b('0x1b')]=_0x5bad95;if(_0x470a91['query']['includeAll']){_0x5daad3[_0xf88b('0x3e')]=[{'all':!![]}];}return db['Automation']['findAll'](_0x5daad3);})[_0xf88b('0x23')](function(_0x2a5591){_0x45ddb6[_0xf88b('0x3f')]=_0x2a5591;return _0x45ddb6;})[_0xf88b('0x23')](respondWithFilteredResult(_0x2e9f20,_0x5daad3))['catch'](handleError(_0x2e9f20,null));};exports[_0xf88b('0x40')]=function(_0x1daab6,_0x345802){var _0x10cbf7={'raw':![],'where':{'id':_0x1daab6[_0xf88b('0x41')]['id']}},_0x44cfef={};_0x44cfef[_0xf88b('0x2d')]=_[_0xf88b('0x2f')](db[_0xf88b('0x3d')]['rawAttributes']);_0x44cfef[_0xf88b('0x2e')]=_['keys'](_0x1daab6[_0xf88b('0x2e')]);_0x44cfef[_0xf88b('0x30')]=_['intersection'](_0x44cfef['model'],_0x44cfef[_0xf88b('0x2e')]);_0x10cbf7[_0xf88b('0x33')]=_[_0xf88b('0x31')](_0x44cfef[_0xf88b('0x2d')],qs[_0xf88b('0x32')](_0x1daab6[_0xf88b('0x2e')][_0xf88b('0x32')]));_0x10cbf7[_0xf88b('0x33')]=_0x10cbf7['attributes'][_0xf88b('0x34')]?_0x10cbf7[_0xf88b('0x33')]:_0x44cfef[_0xf88b('0x2d')];if(_0x1daab6[_0xf88b('0x2e')][_0xf88b('0x42')]){_0x10cbf7[_0xf88b('0x3e')]=[{'all':!![]}];}_0x10cbf7=_[_0xf88b('0x3a')]({},_0x10cbf7,_0x1daab6[_0xf88b('0x3c')]);return db[_0xf88b('0x3d')]['find'](_0x10cbf7)[_0xf88b('0x23')](handleEntityNotFound(_0x345802,null))[_0xf88b('0x23')](respondWithResult(_0x345802,null))[_0xf88b('0x43')](handleError(_0x345802,null));};exports['create']=function(_0x3a6d3e,_0x916979){return db[_0xf88b('0x3d')][_0xf88b('0x44')](_0x3a6d3e['body'],{})['then'](respondWithResult(_0x916979,0xc9))['catch'](handleError(_0x916979,null));};exports[_0xf88b('0x22')]=function(_0x3080f1,_0x5c3e0f){if(_0x3080f1[_0xf88b('0x45')]['id']){delete _0x3080f1[_0xf88b('0x45')]['id'];}return db[_0xf88b('0x3d')]['find']({'where':{'id':_0x3080f1[_0xf88b('0x41')]['id']}})[_0xf88b('0x23')](handleEntityNotFound(_0x5c3e0f,null))[_0xf88b('0x23')](saveUpdates(_0x3080f1[_0xf88b('0x45')],null))[_0xf88b('0x23')](respondWithResult(_0x5c3e0f,null))[_0xf88b('0x43')](handleError(_0x5c3e0f,null));};exports[_0xf88b('0x24')]=function(_0x4eaa7b,_0x538ce8){return db[_0xf88b('0x3d')][_0xf88b('0x46')]({'where':{'id':_0x4eaa7b[_0xf88b('0x41')]['id']}})[_0xf88b('0x23')](handleEntityNotFound(_0x538ce8,null))[_0xf88b('0x23')](removeEntity(_0x538ce8,null))[_0xf88b('0x43')](handleError(_0x538ce8,null));};exports[_0xf88b('0x47')]=function(_0x10ab4a,_0x48d6dd,_0x5d6478){return db[_0xf88b('0x48')][_0xf88b('0x46')]({'where':{'id':_0x10ab4a[_0xf88b('0x41')]['id']}})['then'](handleEntityNotFound(_0x48d6dd,null))[_0xf88b('0x23')](function(_0x60d24c){if(_0x60d24c){return _0x60d24c[_0xf88b('0x47')](_0x10ab4a[_0xf88b('0x45')][_0xf88b('0x49')],_[_0xf88b('0x4a')](_0x10ab4a[_0xf88b('0x45')],[_0xf88b('0x49'),'id'])||{});}})['then'](respondWithResult(_0x48d6dd,null))[_0xf88b('0x43')](handleError(_0x48d6dd,null));};exports['getConditions']=function(_0x58be1d,_0x45d41f,_0x50ef2d){var _0x3de378={};var _0x2abd12={};var _0x5e2c34;var _0x2a570c;return db[_0xf88b('0x3d')][_0xf88b('0x4b')]({'where':{'id':_0x58be1d[_0xf88b('0x41')]['id']}})[_0xf88b('0x23')](handleEntityNotFound(_0x45d41f,null))[_0xf88b('0x23')](function(_0x15a4f3){if(_0x15a4f3){_0x5e2c34=_0x15a4f3;_0x2abd12['model']=_[_0xf88b('0x2f')](db[_0xf88b('0x48')]['rawAttributes']);_0x2abd12[_0xf88b('0x2e')]=_[_0xf88b('0x2f')](_0x58be1d['query']);_0x2abd12[_0xf88b('0x30')]=_[_0xf88b('0x31')](_0x2abd12[_0xf88b('0x2d')],_0x2abd12[_0xf88b('0x2e')]);_0x3de378[_0xf88b('0x33')]=_[_0xf88b('0x31')](_0x2abd12[_0xf88b('0x2d')],qs['fields'](_0x58be1d[_0xf88b('0x2e')]['fields']));_0x3de378[_0xf88b('0x33')]=_0x3de378[_0xf88b('0x33')][_0xf88b('0x34')]?_0x3de378[_0xf88b('0x33')]:_0x2abd12[_0xf88b('0x2d')];_0x3de378[_0xf88b('0x36')]=qs[_0xf88b('0x37')](_0x58be1d[_0xf88b('0x2e')][_0xf88b('0x37')]);_0x3de378[_0xf88b('0x38')]=qs['filters'](_[_0xf88b('0x4c')](_0x58be1d[_0xf88b('0x2e')],_0x2abd12[_0xf88b('0x30')]));if(_0x58be1d[_0xf88b('0x2e')]['filter']){_0x3de378[_0xf88b('0x38')]=_['merge'](_0x3de378[_0xf88b('0x38')],{'$or':_[_0xf88b('0x29')](_0x3de378[_0xf88b('0x33')],function(_0xfac6cd){var _0x46e3ce={};_0x46e3ce[_0xfac6cd]={'$like':'%'+_0x58be1d[_0xf88b('0x2e')][_0xf88b('0x39')]+'%'};return _0x46e3ce;})});}_0x3de378=_[_0xf88b('0x3a')]({},_0x3de378,_0x58be1d['options']);return _0x5e2c34['getConditions'](_0x3de378);}})['then'](function(_0x41ae15){if(_0x41ae15){_0x2a570c=_0x41ae15[_0xf88b('0x34')];if(!_0x58be1d[_0xf88b('0x2e')]['hasOwnProperty'](_0xf88b('0x4d'))){_0x3de378[_0xf88b('0x1d')]=qs[_0xf88b('0x1d')](_0x58be1d['query'][_0xf88b('0x1d')]);_0x3de378[_0xf88b('0x1c')]=qs[_0xf88b('0x1c')](_0x58be1d[_0xf88b('0x2e')][_0xf88b('0x1c')]);}return _0x5e2c34[_0xf88b('0x4e')](_0x3de378);}})[_0xf88b('0x23')](function(_0x12993d){if(_0x12993d){return _0x12993d?{'count':_0x2a570c,'rows':_0x12993d}:null;}})[_0xf88b('0x23')](respondWithResult(_0x45d41f,null))[_0xf88b('0x43')](handleError(_0x45d41f,null));};exports['addActions']=function(_0x4e5548,_0x266543,_0x18b404){return db[_0xf88b('0x4f')]['find']({'where':{'id':_0x4e5548['params']['id']}})['then'](handleEntityNotFound(_0x266543,null))[_0xf88b('0x23')](function(_0x42a777){if(_0x42a777){return _0x42a777[_0xf88b('0x50')](_0x4e5548[_0xf88b('0x45')]['ids'],_[_0xf88b('0x4a')](_0x4e5548[_0xf88b('0x45')],['ids','id'])||{});}})[_0xf88b('0x23')](respondWithResult(_0x266543,null))[_0xf88b('0x43')](handleError(_0x266543,null));};exports[_0xf88b('0x51')]=function(_0x42ad05,_0x3edbc8,_0x70b441){var _0x2298ea={};var _0x4457da={};var _0x1d257d;var _0x45e283;return db[_0xf88b('0x3d')][_0xf88b('0x4b')]({'where':{'id':_0x42ad05['params']['id']}})[_0xf88b('0x23')](handleEntityNotFound(_0x3edbc8,null))['then'](function(_0x530739){if(_0x530739){_0x1d257d=_0x530739;_0x4457da[_0xf88b('0x2d')]=_['keys'](db[_0xf88b('0x4f')]['rawAttributes']);_0x4457da[_0xf88b('0x2e')]=_[_0xf88b('0x2f')](_0x42ad05['query']);_0x4457da['filters']=_[_0xf88b('0x31')](_0x4457da[_0xf88b('0x2d')],_0x4457da[_0xf88b('0x2e')]);_0x2298ea[_0xf88b('0x33')]=_[_0xf88b('0x31')](_0x4457da[_0xf88b('0x2d')],qs[_0xf88b('0x32')](_0x42ad05[_0xf88b('0x2e')][_0xf88b('0x32')]));_0x2298ea[_0xf88b('0x33')]=_0x2298ea[_0xf88b('0x33')][_0xf88b('0x34')]?_0x2298ea[_0xf88b('0x33')]:_0x4457da[_0xf88b('0x2d')];_0x2298ea[_0xf88b('0x36')]=qs['sort'](_0x42ad05[_0xf88b('0x2e')]['sort']);_0x2298ea[_0xf88b('0x38')]=qs['filters'](_[_0xf88b('0x4c')](_0x42ad05[_0xf88b('0x2e')],_0x4457da[_0xf88b('0x30')]));if(_0x42ad05[_0xf88b('0x2e')]['filter']){_0x2298ea[_0xf88b('0x38')]=_['merge'](_0x2298ea['where'],{'$or':_[_0xf88b('0x29')](_0x2298ea[_0xf88b('0x33')],function(_0x559353){var _0x1e9c70={};_0x1e9c70[_0x559353]={'$like':'%'+_0x42ad05[_0xf88b('0x2e')][_0xf88b('0x39')]+'%'};return _0x1e9c70;})});}_0x2298ea=_[_0xf88b('0x3a')]({},_0x2298ea,_0x42ad05['options']);return _0x1d257d[_0xf88b('0x51')](_0x2298ea);}})[_0xf88b('0x23')](function(_0x150ed3){if(_0x150ed3){_0x45e283=_0x150ed3['length'];if(!_0x42ad05[_0xf88b('0x2e')][_0xf88b('0x35')](_0xf88b('0x4d'))){_0x2298ea[_0xf88b('0x1d')]=qs[_0xf88b('0x1d')](_0x42ad05[_0xf88b('0x2e')]['limit']);_0x2298ea[_0xf88b('0x1c')]=qs[_0xf88b('0x1c')](_0x42ad05[_0xf88b('0x2e')][_0xf88b('0x1c')]);}return _0x1d257d['getActions'](_0x2298ea);}})[_0xf88b('0x23')](function(_0x2443b1){if(_0x2443b1){return _0x2443b1?{'count':_0x45e283,'rows':_0x2443b1}:null;}})[_0xf88b('0x23')](respondWithResult(_0x3edbc8,null))[_0xf88b('0x43')](handleError(_0x3edbc8,null));};