Built motion from commit (unavailable).|2.3.97
[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 _0x60ac=['crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','ioredis','../../components/parsers/qs','../../config/logger','../../mysqldb','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','reject','save','update','then','destroy','error','stack','name','send','Automation','rawAttributes','model','keys','query','filters','intersection','attributes','fields','length','nolimit','order','sort','where','pick','merge','key','VIRTUAL','field','filter','options','include','rows','catch','find','create','body','params','addConditions','Condition','ids','getConditions','map','hasOwnProperty','addActions','getActions','findOne','Action','html-pdf','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','lodash','squel'];(function(_0x23211e,_0x4c6c8c){var _0x55a2ce=function(_0x4cf190){while(--_0x4cf190){_0x23211e['push'](_0x23211e['shift']());}};_0x55a2ce(++_0x4c6c8c);}(_0x60ac,0x94));var _0xc60a=function(_0x5340bb,_0x12f8f3){_0x5340bb=_0x5340bb-0x0;var _0x278f4c=_0x60ac[_0x5340bb];return _0x278f4c;};'use strict';var pdf=require(_0xc60a('0x0'));var emlformat=require(_0xc60a('0x1'));var rimraf=require(_0xc60a('0x2'));var zipdir=require(_0xc60a('0x3'));var jsonpatch=require('fast-json-patch');var rp=require(_0xc60a('0x4'));var moment=require(_0xc60a('0x5'));var BPromise=require(_0xc60a('0x6'));var Mustache=require('mustache');var util=require(_0xc60a('0x7'));var path=require(_0xc60a('0x8'));var sox=require(_0xc60a('0x9'));var csv=require(_0xc60a('0xa'));var ejs=require(_0xc60a('0xb'));var fs=require('fs');var _=require(_0xc60a('0xc'));var squel=require(_0xc60a('0xd'));var crypto=require(_0xc60a('0xe'));var jsforce=require(_0xc60a('0xf'));var deskjs=require(_0xc60a('0x10'));var toCsv=require(_0xc60a('0xa'));var querystring=require(_0xc60a('0x11'));var Papa=require(_0xc60a('0x12'));var authService=require(_0xc60a('0x13'));var hardwareService=require('../../config/license/hardware');var Redis=require(_0xc60a('0x14'));var qs=require(_0xc60a('0x15'));var logger=require(_0xc60a('0x16'))('api');var utils=require('../../config/utils');var config=require('../../config/environment');var db=require(_0xc60a('0x17'))['db'];function respondWithStatusCode(_0x1018a9,_0x17b2c6){_0x17b2c6=_0x17b2c6||0xcc;return function(_0xd71426){if(_0xd71426){return _0x1018a9[_0xc60a('0x18')](_0x17b2c6);}return _0x1018a9[_0xc60a('0x19')](_0x17b2c6)[_0xc60a('0x1a')]();};}function respondWithResult(_0x40d227,_0x4517d2){_0x4517d2=_0x4517d2||0xc8;return function(_0x5d9917){if(_0x5d9917){return _0x40d227[_0xc60a('0x19')](_0x4517d2)[_0xc60a('0x1b')](_0x5d9917);}};}function respondWithFilteredResult(_0xe3205a,_0x2f988c){return function(_0x51ed66){if(_0x51ed66){var _0x5d58c9=_0x51ed66[_0xc60a('0x1c')],_0x4a662f=_0x2f988c[_0xc60a('0x1d')],_0x5967b5=_0x2f988c['offset']+_0x2f988c[_0xc60a('0x1e')],_0x1ac370;if(_0x5967b5>=_0x5d58c9){_0x5967b5=_0x5d58c9;_0x1ac370=0xc8;}else{_0x1ac370=0xce;}_0xe3205a[_0xc60a('0x19')](_0x1ac370);return _0xe3205a[_0xc60a('0x1f')](_0xc60a('0x20'),_0x4a662f+'-'+_0x5967b5+'/'+_0x5d58c9)[_0xc60a('0x1b')](_0x51ed66);}return null;};}function patchUpdates(_0x59593f){return function(_0x596ee1){try{jsonpatch[_0xc60a('0x21')](_0x596ee1,_0x59593f,!![]);}catch(_0x44a6ec){return BPromise[_0xc60a('0x22')](_0x44a6ec);}return _0x596ee1[_0xc60a('0x23')]();};}function saveUpdates(_0x3b8ff9,_0x307b52){return function(_0x51098c){if(_0x51098c){return _0x51098c[_0xc60a('0x24')](_0x3b8ff9)[_0xc60a('0x25')](function(_0x7eaa3d){return _0x7eaa3d;});}return null;};}function removeEntity(_0x470790,_0x570872){return function(_0x28eaaf){if(_0x28eaaf){return _0x28eaaf[_0xc60a('0x26')]()[_0xc60a('0x25')](function(){_0x470790[_0xc60a('0x19')](0xcc)[_0xc60a('0x1a')]();});}};}function handleEntityNotFound(_0x26e1c6,_0x55b75c){return function(_0x43bec9){if(!_0x43bec9){_0x26e1c6[_0xc60a('0x18')](0x194);}return _0x43bec9;};}function handleError(_0x15114b,_0x10e975){_0x10e975=_0x10e975||0x1f4;return function(_0x1abea0){logger[_0xc60a('0x27')](_0x1abea0[_0xc60a('0x28')]);if(_0x1abea0['name']){delete _0x1abea0[_0xc60a('0x29')];}_0x15114b[_0xc60a('0x19')](_0x10e975)[_0xc60a('0x2a')](_0x1abea0);};}exports['index']=function(_0x57ce22,_0x43398e){var _0x5d559d={},_0x453e85={},_0x303c69={'count':0x0,'rows':[]};var _0x352d43=db[_0xc60a('0x2b')][_0xc60a('0x2c')];_0x453e85[_0xc60a('0x2d')]=_[_0xc60a('0x2e')](_0x352d43);_0x453e85['query']=_[_0xc60a('0x2e')](_0x57ce22[_0xc60a('0x2f')]);_0x453e85[_0xc60a('0x30')]=_[_0xc60a('0x31')](_0x453e85['model'],_0x453e85[_0xc60a('0x2f')]);_0x5d559d[_0xc60a('0x32')]=_['intersection'](_0x453e85['model'],qs[_0xc60a('0x33')](_0x57ce22['query'][_0xc60a('0x33')]));_0x5d559d['attributes']=_0x5d559d[_0xc60a('0x32')][_0xc60a('0x34')]?_0x5d559d[_0xc60a('0x32')]:_0x453e85[_0xc60a('0x2d')];if(!_0x57ce22[_0xc60a('0x2f')]['hasOwnProperty'](_0xc60a('0x35'))){_0x5d559d['limit']=qs[_0xc60a('0x1e')](_0x57ce22[_0xc60a('0x2f')][_0xc60a('0x1e')]);_0x5d559d[_0xc60a('0x1d')]=qs[_0xc60a('0x1d')](_0x57ce22['query'][_0xc60a('0x1d')]);}_0x5d559d[_0xc60a('0x36')]=qs[_0xc60a('0x37')](_0x57ce22[_0xc60a('0x2f')]['sort']);_0x5d559d[_0xc60a('0x38')]=qs[_0xc60a('0x30')](_[_0xc60a('0x39')](_0x57ce22[_0xc60a('0x2f')],_0x453e85[_0xc60a('0x30')]));if(_0x57ce22[_0xc60a('0x2f')]['filter']){_0x5d559d[_0xc60a('0x38')]=_[_0xc60a('0x3a')](_0x5d559d[_0xc60a('0x38')],{'$or':_['map'](_0x352d43,function(_0xb4217e){if(_0xb4217e['type'][_0xc60a('0x3b')]!==_0xc60a('0x3c')){var _0x2594ee={};_0x2594ee[_0xb4217e[_0xc60a('0x3d')]]={'$like':'%'+_0x57ce22[_0xc60a('0x2f')][_0xc60a('0x3e')]+'%'};return _0x2594ee;}})});}_0x5d559d=_[_0xc60a('0x3a')]({},_0x5d559d,_0x57ce22[_0xc60a('0x3f')]);var _0x3dd491={'where':_0x5d559d['where']};return db[_0xc60a('0x2b')][_0xc60a('0x1c')](_0x3dd491)['then'](function(_0xcef9a3){_0x303c69['count']=_0xcef9a3;if(_0x57ce22['query']['includeAll']){_0x5d559d[_0xc60a('0x40')]=[{'all':!![]}];}return db[_0xc60a('0x2b')]['findAll'](_0x5d559d);})[_0xc60a('0x25')](function(_0x548df6){_0x303c69[_0xc60a('0x41')]=_0x548df6;return _0x303c69;})[_0xc60a('0x25')](respondWithFilteredResult(_0x43398e,_0x5d559d))[_0xc60a('0x42')](handleError(_0x43398e,null));};exports['show']=function(_0x5bffeb,_0x4c617f){var _0x1926c8={'raw':![],'where':{'id':_0x5bffeb['params']['id']}},_0x1e1054={};_0x1e1054['model']=_[_0xc60a('0x2e')](db[_0xc60a('0x2b')][_0xc60a('0x2c')]);_0x1e1054[_0xc60a('0x2f')]=_[_0xc60a('0x2e')](_0x5bffeb[_0xc60a('0x2f')]);_0x1e1054[_0xc60a('0x30')]=_['intersection'](_0x1e1054[_0xc60a('0x2d')],_0x1e1054['query']);_0x1926c8[_0xc60a('0x32')]=_[_0xc60a('0x31')](_0x1e1054[_0xc60a('0x2d')],qs[_0xc60a('0x33')](_0x5bffeb[_0xc60a('0x2f')]['fields']));_0x1926c8['attributes']=_0x1926c8[_0xc60a('0x32')][_0xc60a('0x34')]?_0x1926c8[_0xc60a('0x32')]:_0x1e1054[_0xc60a('0x2d')];if(_0x5bffeb[_0xc60a('0x2f')]['includeAll']){_0x1926c8[_0xc60a('0x40')]=[{'all':!![]}];}_0x1926c8=_[_0xc60a('0x3a')]({},_0x1926c8,_0x5bffeb['options']);return db[_0xc60a('0x2b')][_0xc60a('0x43')](_0x1926c8)[_0xc60a('0x25')](handleEntityNotFound(_0x4c617f,null))[_0xc60a('0x25')](respondWithResult(_0x4c617f,null))['catch'](handleError(_0x4c617f,null));};exports['create']=function(_0x5af70d,_0x241939){return db['Automation'][_0xc60a('0x44')](_0x5af70d['body'],{})[_0xc60a('0x25')](respondWithResult(_0x241939,0xc9))[_0xc60a('0x42')](handleError(_0x241939,null));};exports[_0xc60a('0x24')]=function(_0x1b7914,_0xd78a6a){if(_0x1b7914['body']['id']){delete _0x1b7914[_0xc60a('0x45')]['id'];}return db[_0xc60a('0x2b')][_0xc60a('0x43')]({'where':{'id':_0x1b7914['params']['id']}})['then'](handleEntityNotFound(_0xd78a6a,null))[_0xc60a('0x25')](saveUpdates(_0x1b7914[_0xc60a('0x45')],null))['then'](respondWithResult(_0xd78a6a,null))[_0xc60a('0x42')](handleError(_0xd78a6a,null));};exports['destroy']=function(_0x2f5465,_0x34d785){return db[_0xc60a('0x2b')][_0xc60a('0x43')]({'where':{'id':_0x2f5465[_0xc60a('0x46')]['id']}})[_0xc60a('0x25')](handleEntityNotFound(_0x34d785,null))['then'](removeEntity(_0x34d785,null))[_0xc60a('0x42')](handleError(_0x34d785,null));};exports[_0xc60a('0x47')]=function(_0x432d76,_0x14b867,_0x567c81){return db[_0xc60a('0x48')][_0xc60a('0x43')]({'where':{'id':_0x432d76[_0xc60a('0x46')]['id']}})['then'](handleEntityNotFound(_0x14b867,null))['then'](function(_0x3f32c6){if(_0x3f32c6){return _0x3f32c6[_0xc60a('0x47')](_0x432d76['body'][_0xc60a('0x49')],_['omit'](_0x432d76[_0xc60a('0x45')],[_0xc60a('0x49'),'id'])||{});}})['then'](respondWithResult(_0x14b867,null))['catch'](handleError(_0x14b867,null));};exports[_0xc60a('0x4a')]=function(_0x20fbee,_0x10a26c,_0x33b154){var _0x1c3926={};var _0x57fc60={};var _0x263974;var _0x185af7;return db[_0xc60a('0x2b')]['findOne']({'where':{'id':_0x20fbee[_0xc60a('0x46')]['id']}})[_0xc60a('0x25')](handleEntityNotFound(_0x10a26c,null))[_0xc60a('0x25')](function(_0x16b453){if(_0x16b453){_0x263974=_0x16b453;_0x57fc60['model']=_[_0xc60a('0x2e')](db[_0xc60a('0x48')][_0xc60a('0x2c')]);_0x57fc60[_0xc60a('0x2f')]=_[_0xc60a('0x2e')](_0x20fbee[_0xc60a('0x2f')]);_0x57fc60['filters']=_[_0xc60a('0x31')](_0x57fc60['model'],_0x57fc60[_0xc60a('0x2f')]);_0x1c3926[_0xc60a('0x32')]=_[_0xc60a('0x31')](_0x57fc60['model'],qs[_0xc60a('0x33')](_0x20fbee[_0xc60a('0x2f')][_0xc60a('0x33')]));_0x1c3926[_0xc60a('0x32')]=_0x1c3926[_0xc60a('0x32')]['length']?_0x1c3926[_0xc60a('0x32')]:_0x57fc60[_0xc60a('0x2d')];_0x1c3926[_0xc60a('0x36')]=qs[_0xc60a('0x37')](_0x20fbee[_0xc60a('0x2f')][_0xc60a('0x37')]);_0x1c3926[_0xc60a('0x38')]=qs[_0xc60a('0x30')](_[_0xc60a('0x39')](_0x20fbee[_0xc60a('0x2f')],_0x57fc60[_0xc60a('0x30')]));if(_0x20fbee['query']['filter']){_0x1c3926['where']=_['merge'](_0x1c3926[_0xc60a('0x38')],{'$or':_[_0xc60a('0x4b')](_0x1c3926[_0xc60a('0x32')],function(_0x3c3d0e){var _0xbb16c4={};_0xbb16c4[_0x3c3d0e]={'$like':'%'+_0x20fbee['query'][_0xc60a('0x3e')]+'%'};return _0xbb16c4;})});}_0x1c3926=_[_0xc60a('0x3a')]({},_0x1c3926,_0x20fbee[_0xc60a('0x3f')]);return _0x263974['getConditions'](_0x1c3926);}})[_0xc60a('0x25')](function(_0x59d6e9){if(_0x59d6e9){_0x185af7=_0x59d6e9[_0xc60a('0x34')];if(!_0x20fbee[_0xc60a('0x2f')][_0xc60a('0x4c')](_0xc60a('0x35'))){_0x1c3926[_0xc60a('0x1e')]=qs[_0xc60a('0x1e')](_0x20fbee[_0xc60a('0x2f')]['limit']);_0x1c3926[_0xc60a('0x1d')]=qs['offset'](_0x20fbee[_0xc60a('0x2f')]['offset']);}return _0x263974[_0xc60a('0x4a')](_0x1c3926);}})[_0xc60a('0x25')](function(_0x4788b0){if(_0x4788b0){return _0x4788b0?{'count':_0x185af7,'rows':_0x4788b0}:null;}})['then'](respondWithResult(_0x10a26c,null))[_0xc60a('0x42')](handleError(_0x10a26c,null));};exports[_0xc60a('0x4d')]=function(_0x5a8cec,_0x38b575,_0x37c300){return db['Action'][_0xc60a('0x43')]({'where':{'id':_0x5a8cec[_0xc60a('0x46')]['id']}})[_0xc60a('0x25')](handleEntityNotFound(_0x38b575,null))[_0xc60a('0x25')](function(_0x404180){if(_0x404180){return _0x404180['addActions'](_0x5a8cec[_0xc60a('0x45')][_0xc60a('0x49')],_['omit'](_0x5a8cec[_0xc60a('0x45')],[_0xc60a('0x49'),'id'])||{});}})[_0xc60a('0x25')](respondWithResult(_0x38b575,null))[_0xc60a('0x42')](handleError(_0x38b575,null));};exports[_0xc60a('0x4e')]=function(_0x518c58,_0x217793,_0x3d6887){var _0x3af36f={};var _0x31fdad={};var _0x458623;var _0x2c3a55;return db[_0xc60a('0x2b')][_0xc60a('0x4f')]({'where':{'id':_0x518c58[_0xc60a('0x46')]['id']}})[_0xc60a('0x25')](handleEntityNotFound(_0x217793,null))[_0xc60a('0x25')](function(_0xb36ade){if(_0xb36ade){_0x458623=_0xb36ade;_0x31fdad[_0xc60a('0x2d')]=_[_0xc60a('0x2e')](db[_0xc60a('0x50')]['rawAttributes']);_0x31fdad[_0xc60a('0x2f')]=_[_0xc60a('0x2e')](_0x518c58[_0xc60a('0x2f')]);_0x31fdad[_0xc60a('0x30')]=_[_0xc60a('0x31')](_0x31fdad[_0xc60a('0x2d')],_0x31fdad[_0xc60a('0x2f')]);_0x3af36f[_0xc60a('0x32')]=_[_0xc60a('0x31')](_0x31fdad['model'],qs[_0xc60a('0x33')](_0x518c58[_0xc60a('0x2f')]['fields']));_0x3af36f[_0xc60a('0x32')]=_0x3af36f['attributes'][_0xc60a('0x34')]?_0x3af36f['attributes']:_0x31fdad[_0xc60a('0x2d')];_0x3af36f[_0xc60a('0x36')]=qs[_0xc60a('0x37')](_0x518c58[_0xc60a('0x2f')]['sort']);_0x3af36f[_0xc60a('0x38')]=qs[_0xc60a('0x30')](_['pick'](_0x518c58[_0xc60a('0x2f')],_0x31fdad['filters']));if(_0x518c58['query'][_0xc60a('0x3e')]){_0x3af36f['where']=_[_0xc60a('0x3a')](_0x3af36f[_0xc60a('0x38')],{'$or':_['map'](_0x3af36f['attributes'],function(_0x47f95e){var _0x4e0ffa={};_0x4e0ffa[_0x47f95e]={'$like':'%'+_0x518c58[_0xc60a('0x2f')][_0xc60a('0x3e')]+'%'};return _0x4e0ffa;})});}_0x3af36f=_[_0xc60a('0x3a')]({},_0x3af36f,_0x518c58[_0xc60a('0x3f')]);return _0x458623[_0xc60a('0x4e')](_0x3af36f);}})[_0xc60a('0x25')](function(_0x19478b){if(_0x19478b){_0x2c3a55=_0x19478b[_0xc60a('0x34')];if(!_0x518c58['query']['hasOwnProperty'](_0xc60a('0x35'))){_0x3af36f[_0xc60a('0x1e')]=qs[_0xc60a('0x1e')](_0x518c58[_0xc60a('0x2f')][_0xc60a('0x1e')]);_0x3af36f['offset']=qs[_0xc60a('0x1d')](_0x518c58['query']['offset']);}return _0x458623[_0xc60a('0x4e')](_0x3af36f);}})[_0xc60a('0x25')](function(_0x26355e){if(_0x26355e){return _0x26355e?{'count':_0x2c3a55,'rows':_0x26355e}:null;}})[_0xc60a('0x25')](respondWithResult(_0x217793,null))[_0xc60a('0x42')](handleError(_0x217793,null));};