Built motion from commit (unavailable).|2.5.5
[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 _0x86da=['status','end','count','limit','Content-Range','json','apply','reject','save','then','destroy','sendStatus','error','stack','name','map','Automation','rawAttributes','fieldName','key','model','query','filters','intersection','attributes','fields','length','nolimit','offset','sort','where','filter','type','merge','options','includeAll','include','rows','show','params','keys','find','create','body','catch','update','addConditions','omit','ids','getConditions','Condition','order','pick','hasOwnProperty','addActions','Action','getActions','html-pdf','eml-format','zip-dir','fast-json-patch','moment','mustache','util','sox','ejs','squel','jsforce','desk.js','to-csv','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/environment','../../config/license/util'];(function(_0x556927,_0x34b53f){var _0x5f1235=function(_0x4f4e44){while(--_0x4f4e44){_0x556927['push'](_0x556927['shift']());}};_0x5f1235(++_0x34b53f);}(_0x86da,0x175));var _0xa86d=function(_0x4e481f,_0x5ee0ed){_0x4e481f=_0x4e481f-0x0;var _0x24f910=_0x86da[_0x4e481f];return _0x24f910;};'use strict';var pdf=require(_0xa86d('0x0'));var emlformat=require(_0xa86d('0x1'));var rimraf=require('rimraf');var zipdir=require(_0xa86d('0x2'));var jsonpatch=require(_0xa86d('0x3'));var rp=require('request-promise');var moment=require(_0xa86d('0x4'));var BPromise=require('bluebird');var Mustache=require(_0xa86d('0x5'));var util=require(_0xa86d('0x6'));var path=require('path');var sox=require(_0xa86d('0x7'));var csv=require('to-csv');var ejs=require(_0xa86d('0x8'));var fs=require('fs');var _=require('lodash');var squel=require(_0xa86d('0x9'));var crypto=require('crypto');var jsforce=require(_0xa86d('0xa'));var deskjs=require(_0xa86d('0xb'));var toCsv=require(_0xa86d('0xc'));var querystring=require('querystring');var Papa=require(_0xa86d('0xd'));var Redis=require(_0xa86d('0xe'));var authService=require(_0xa86d('0xf'));var qs=require(_0xa86d('0x10'));var as=require(_0xa86d('0x11'));var hardwareService=require(_0xa86d('0x12'));var logger=require(_0xa86d('0x13'))('api');var utils=require('../../config/utils');var config=require(_0xa86d('0x14'));var licenseUtil=require(_0xa86d('0x15'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x6d44b7,_0x105861){_0x105861=_0x105861||0xcc;return function(_0x559020){if(_0x559020){return _0x6d44b7['sendStatus'](_0x105861);}return _0x6d44b7[_0xa86d('0x16')](_0x105861)[_0xa86d('0x17')]();};}function respondWithResult(_0x4575d7,_0x12b4f2){_0x12b4f2=_0x12b4f2||0xc8;return function(_0x12638c){if(_0x12638c){return _0x4575d7['status'](_0x12b4f2)['json'](_0x12638c);}};}function respondWithFilteredResult(_0x42ae2d,_0x2a27ba){return function(_0x1fb800){if(_0x1fb800){var _0x4db8c9=_0x1fb800[_0xa86d('0x18')],_0x115472=_0x2a27ba['offset'],_0x444be5=_0x2a27ba['offset']+_0x2a27ba[_0xa86d('0x19')],_0x4b31c1;if(_0x444be5>=_0x4db8c9){_0x444be5=_0x4db8c9;_0x4b31c1=0xc8;}else{_0x4b31c1=0xce;}_0x42ae2d[_0xa86d('0x16')](_0x4b31c1);return _0x42ae2d['set'](_0xa86d('0x1a'),_0x115472+'-'+_0x444be5+'/'+_0x4db8c9)[_0xa86d('0x1b')](_0x1fb800);}return null;};}function patchUpdates(_0x48eae8){return function(_0x1a2cf9){try{jsonpatch[_0xa86d('0x1c')](_0x1a2cf9,_0x48eae8,!![]);}catch(_0xa991db){return BPromise[_0xa86d('0x1d')](_0xa991db);}return _0x1a2cf9[_0xa86d('0x1e')]();};}function saveUpdates(_0x318d8e,_0x72d769){return function(_0x343023){if(_0x343023){return _0x343023['update'](_0x318d8e)[_0xa86d('0x1f')](function(_0x30edd6){return _0x30edd6;});}return null;};}function removeEntity(_0x148675,_0x59b940){return function(_0x4129ae){if(_0x4129ae){return _0x4129ae[_0xa86d('0x20')]()[_0xa86d('0x1f')](function(){_0x148675[_0xa86d('0x16')](0xcc)[_0xa86d('0x17')]();});}};}function handleEntityNotFound(_0x3e5e76,_0x1782bd){return function(_0x373ee5){if(!_0x373ee5){_0x3e5e76[_0xa86d('0x21')](0x194);}return _0x373ee5;};}function handleError(_0x47ae8c,_0x2f98b0){_0x2f98b0=_0x2f98b0||0x1f4;return function(_0x182249){logger[_0xa86d('0x22')](_0x182249[_0xa86d('0x23')]);if(_0x182249[_0xa86d('0x24')]){delete _0x182249[_0xa86d('0x24')];}_0x47ae8c[_0xa86d('0x16')](_0x2f98b0)['send'](_0x182249);};}exports['index']=function(_0xc21d9c,_0x540184){var _0x12172c={},_0x1275d8={},_0x59635b={'count':0x0,'rows':[]};var _0x7c5901=_[_0xa86d('0x25')](db[_0xa86d('0x26')][_0xa86d('0x27')],function(_0x426657){return{'name':_0x426657[_0xa86d('0x28')],'type':_0x426657['type'][_0xa86d('0x29')]};});_0x1275d8[_0xa86d('0x2a')]=_[_0xa86d('0x25')](_0x7c5901,_0xa86d('0x24'));_0x1275d8[_0xa86d('0x2b')]=_['keys'](_0xc21d9c[_0xa86d('0x2b')]);_0x1275d8[_0xa86d('0x2c')]=_[_0xa86d('0x2d')](_0x1275d8[_0xa86d('0x2a')],_0x1275d8[_0xa86d('0x2b')]);_0x12172c[_0xa86d('0x2e')]=_[_0xa86d('0x2d')](_0x1275d8['model'],qs['fields'](_0xc21d9c[_0xa86d('0x2b')][_0xa86d('0x2f')]));_0x12172c[_0xa86d('0x2e')]=_0x12172c[_0xa86d('0x2e')][_0xa86d('0x30')]?_0x12172c[_0xa86d('0x2e')]:_0x1275d8['model'];if(!_0xc21d9c[_0xa86d('0x2b')]['hasOwnProperty'](_0xa86d('0x31'))){_0x12172c[_0xa86d('0x19')]=qs[_0xa86d('0x19')](_0xc21d9c[_0xa86d('0x2b')][_0xa86d('0x19')]);_0x12172c[_0xa86d('0x32')]=qs['offset'](_0xc21d9c['query'][_0xa86d('0x32')]);}_0x12172c['order']=qs[_0xa86d('0x33')](_0xc21d9c[_0xa86d('0x2b')][_0xa86d('0x33')]);_0x12172c[_0xa86d('0x34')]=qs[_0xa86d('0x2c')](_['pick'](_0xc21d9c['query'],_0x1275d8[_0xa86d('0x2c')]),_0x7c5901);if(_0xc21d9c[_0xa86d('0x2b')][_0xa86d('0x35')]){_0x12172c[_0xa86d('0x34')]=_['merge'](_0x12172c[_0xa86d('0x34')],{'$or':_['map'](_0x7c5901,function(_0x2505c8){if(_0x2505c8[_0xa86d('0x36')]!=='VIRTUAL'){var _0x3cc0e9={};_0x3cc0e9[_0x2505c8[_0xa86d('0x24')]]={'$like':'%'+_0xc21d9c[_0xa86d('0x2b')][_0xa86d('0x35')]+'%'};return _0x3cc0e9;}})});}_0x12172c=_[_0xa86d('0x37')]({},_0x12172c,_0xc21d9c[_0xa86d('0x38')]);var _0x5cc3f1={'where':_0x12172c[_0xa86d('0x34')]};return db[_0xa86d('0x26')][_0xa86d('0x18')](_0x5cc3f1)[_0xa86d('0x1f')](function(_0x5ca562){_0x59635b['count']=_0x5ca562;if(_0xc21d9c[_0xa86d('0x2b')][_0xa86d('0x39')]){_0x12172c[_0xa86d('0x3a')]=[{'all':!![]}];}return db[_0xa86d('0x26')]['findAll'](_0x12172c);})[_0xa86d('0x1f')](function(_0x3e26a7){_0x59635b[_0xa86d('0x3b')]=_0x3e26a7;return _0x59635b;})[_0xa86d('0x1f')](respondWithFilteredResult(_0x540184,_0x12172c))['catch'](handleError(_0x540184,null));};exports[_0xa86d('0x3c')]=function(_0x20c687,_0xb63f1b){var _0x504f62={'raw':![],'where':{'id':_0x20c687[_0xa86d('0x3d')]['id']}},_0x333993={};_0x333993['model']=_[_0xa86d('0x3e')](db[_0xa86d('0x26')]['rawAttributes']);_0x333993[_0xa86d('0x2b')]=_[_0xa86d('0x3e')](_0x20c687[_0xa86d('0x2b')]);_0x333993[_0xa86d('0x2c')]=_[_0xa86d('0x2d')](_0x333993[_0xa86d('0x2a')],_0x333993[_0xa86d('0x2b')]);_0x504f62['attributes']=_['intersection'](_0x333993[_0xa86d('0x2a')],qs['fields'](_0x20c687['query']['fields']));_0x504f62[_0xa86d('0x2e')]=_0x504f62['attributes'][_0xa86d('0x30')]?_0x504f62[_0xa86d('0x2e')]:_0x333993['model'];if(_0x20c687[_0xa86d('0x2b')]['includeAll']){_0x504f62[_0xa86d('0x3a')]=[{'all':!![]}];}_0x504f62=_['merge']({},_0x504f62,_0x20c687[_0xa86d('0x38')]);return db[_0xa86d('0x26')][_0xa86d('0x3f')](_0x504f62)[_0xa86d('0x1f')](handleEntityNotFound(_0xb63f1b,null))[_0xa86d('0x1f')](respondWithResult(_0xb63f1b,null))['catch'](handleError(_0xb63f1b,null));};exports[_0xa86d('0x40')]=function(_0x43193b,_0x2da546){return db[_0xa86d('0x26')][_0xa86d('0x40')](_0x43193b[_0xa86d('0x41')],{})[_0xa86d('0x1f')](respondWithResult(_0x2da546,0xc9))[_0xa86d('0x42')](handleError(_0x2da546,null));};exports[_0xa86d('0x43')]=function(_0x576bb4,_0x45d71a){if(_0x576bb4[_0xa86d('0x41')]['id']){delete _0x576bb4[_0xa86d('0x41')]['id'];}return db[_0xa86d('0x26')][_0xa86d('0x3f')]({'where':{'id':_0x576bb4[_0xa86d('0x3d')]['id']}})['then'](handleEntityNotFound(_0x45d71a,null))['then'](saveUpdates(_0x576bb4[_0xa86d('0x41')],null))[_0xa86d('0x1f')](respondWithResult(_0x45d71a,null))[_0xa86d('0x42')](handleError(_0x45d71a,null));};exports['destroy']=function(_0x13ee58,_0x1e3805){return db[_0xa86d('0x26')][_0xa86d('0x3f')]({'where':{'id':_0x13ee58[_0xa86d('0x3d')]['id']}})[_0xa86d('0x1f')](handleEntityNotFound(_0x1e3805,null))['then'](removeEntity(_0x1e3805,null))[_0xa86d('0x42')](handleError(_0x1e3805,null));};exports[_0xa86d('0x44')]=function(_0x580bc9,_0x5ec12c,_0x45b178){return db['Condition']['find']({'where':{'id':_0x580bc9[_0xa86d('0x3d')]['id']}})[_0xa86d('0x1f')](handleEntityNotFound(_0x5ec12c,null))['then'](function(_0x19f231){if(_0x19f231){return _0x19f231[_0xa86d('0x44')](_0x580bc9['body']['ids'],_[_0xa86d('0x45')](_0x580bc9[_0xa86d('0x41')],[_0xa86d('0x46'),'id'])||{});}})['then'](respondWithResult(_0x5ec12c,null))[_0xa86d('0x42')](handleError(_0x5ec12c,null));};exports[_0xa86d('0x47')]=function(_0xadc9e1,_0x1db955,_0xa8c206){var _0x1fa48d={};var _0x4becd2={};var _0x12ce16;var _0x250854;return db['Automation']['findOne']({'where':{'id':_0xadc9e1[_0xa86d('0x3d')]['id']}})[_0xa86d('0x1f')](handleEntityNotFound(_0x1db955,null))[_0xa86d('0x1f')](function(_0x29cb26){if(_0x29cb26){_0x12ce16=_0x29cb26;_0x4becd2[_0xa86d('0x2a')]=_[_0xa86d('0x3e')](db[_0xa86d('0x48')]['rawAttributes']);_0x4becd2['query']=_[_0xa86d('0x3e')](_0xadc9e1[_0xa86d('0x2b')]);_0x4becd2['filters']=_['intersection'](_0x4becd2[_0xa86d('0x2a')],_0x4becd2['query']);_0x1fa48d[_0xa86d('0x2e')]=_['intersection'](_0x4becd2['model'],qs[_0xa86d('0x2f')](_0xadc9e1[_0xa86d('0x2b')][_0xa86d('0x2f')]));_0x1fa48d[_0xa86d('0x2e')]=_0x1fa48d[_0xa86d('0x2e')][_0xa86d('0x30')]?_0x1fa48d['attributes']:_0x4becd2[_0xa86d('0x2a')];_0x1fa48d[_0xa86d('0x49')]=qs['sort'](_0xadc9e1['query']['sort']);_0x1fa48d[_0xa86d('0x34')]=qs[_0xa86d('0x2c')](_[_0xa86d('0x4a')](_0xadc9e1[_0xa86d('0x2b')],_0x4becd2['filters']));if(_0xadc9e1[_0xa86d('0x2b')][_0xa86d('0x35')]){_0x1fa48d['where']=_[_0xa86d('0x37')](_0x1fa48d[_0xa86d('0x34')],{'$or':_[_0xa86d('0x25')](_0x1fa48d[_0xa86d('0x2e')],function(_0x39a7c7){var _0x39394f={};_0x39394f[_0x39a7c7]={'$like':'%'+_0xadc9e1[_0xa86d('0x2b')][_0xa86d('0x35')]+'%'};return _0x39394f;})});}_0x1fa48d=_['merge']({},_0x1fa48d,_0xadc9e1['options']);return _0x12ce16[_0xa86d('0x47')](_0x1fa48d);}})[_0xa86d('0x1f')](function(_0x4dda51){if(_0x4dda51){_0x250854=_0x4dda51[_0xa86d('0x30')];if(!_0xadc9e1[_0xa86d('0x2b')][_0xa86d('0x4b')](_0xa86d('0x31'))){_0x1fa48d[_0xa86d('0x19')]=qs[_0xa86d('0x19')](_0xadc9e1[_0xa86d('0x2b')]['limit']);_0x1fa48d['offset']=qs[_0xa86d('0x32')](_0xadc9e1[_0xa86d('0x2b')]['offset']);}return _0x12ce16[_0xa86d('0x47')](_0x1fa48d);}})['then'](function(_0x583341){if(_0x583341){return _0x583341?{'count':_0x250854,'rows':_0x583341}:null;}})[_0xa86d('0x1f')](respondWithResult(_0x1db955,null))[_0xa86d('0x42')](handleError(_0x1db955,null));};exports[_0xa86d('0x4c')]=function(_0x532776,_0x5b4d6b,_0x2598c2){return db[_0xa86d('0x4d')]['find']({'where':{'id':_0x532776[_0xa86d('0x3d')]['id']}})[_0xa86d('0x1f')](handleEntityNotFound(_0x5b4d6b,null))[_0xa86d('0x1f')](function(_0x2980e7){if(_0x2980e7){return _0x2980e7['addActions'](_0x532776['body'][_0xa86d('0x46')],_[_0xa86d('0x45')](_0x532776[_0xa86d('0x41')],[_0xa86d('0x46'),'id'])||{});}})[_0xa86d('0x1f')](respondWithResult(_0x5b4d6b,null))['catch'](handleError(_0x5b4d6b,null));};exports['getActions']=function(_0x866ed4,_0x29a5c2,_0x341b9f){var _0x356e2={};var _0x450669={};var _0x1205b7;var _0x32e967;return db[_0xa86d('0x26')]['findOne']({'where':{'id':_0x866ed4['params']['id']}})[_0xa86d('0x1f')](handleEntityNotFound(_0x29a5c2,null))[_0xa86d('0x1f')](function(_0x3001d1){if(_0x3001d1){_0x1205b7=_0x3001d1;_0x450669[_0xa86d('0x2a')]=_['keys'](db['Action'][_0xa86d('0x27')]);_0x450669[_0xa86d('0x2b')]=_[_0xa86d('0x3e')](_0x866ed4[_0xa86d('0x2b')]);_0x450669[_0xa86d('0x2c')]=_[_0xa86d('0x2d')](_0x450669['model'],_0x450669[_0xa86d('0x2b')]);_0x356e2['attributes']=_[_0xa86d('0x2d')](_0x450669[_0xa86d('0x2a')],qs['fields'](_0x866ed4[_0xa86d('0x2b')][_0xa86d('0x2f')]));_0x356e2[_0xa86d('0x2e')]=_0x356e2[_0xa86d('0x2e')][_0xa86d('0x30')]?_0x356e2[_0xa86d('0x2e')]:_0x450669[_0xa86d('0x2a')];_0x356e2[_0xa86d('0x49')]=qs[_0xa86d('0x33')](_0x866ed4['query'][_0xa86d('0x33')]);_0x356e2[_0xa86d('0x34')]=qs[_0xa86d('0x2c')](_['pick'](_0x866ed4['query'],_0x450669[_0xa86d('0x2c')]));if(_0x866ed4['query']['filter']){_0x356e2[_0xa86d('0x34')]=_['merge'](_0x356e2['where'],{'$or':_[_0xa86d('0x25')](_0x356e2[_0xa86d('0x2e')],function(_0x4d80e3){var _0x46b89d={};_0x46b89d[_0x4d80e3]={'$like':'%'+_0x866ed4[_0xa86d('0x2b')][_0xa86d('0x35')]+'%'};return _0x46b89d;})});}_0x356e2=_['merge']({},_0x356e2,_0x866ed4[_0xa86d('0x38')]);return _0x1205b7['getActions'](_0x356e2);}})[_0xa86d('0x1f')](function(_0x3866b7){if(_0x3866b7){_0x32e967=_0x3866b7[_0xa86d('0x30')];if(!_0x866ed4[_0xa86d('0x2b')][_0xa86d('0x4b')]('nolimit')){_0x356e2[_0xa86d('0x19')]=qs['limit'](_0x866ed4[_0xa86d('0x2b')][_0xa86d('0x19')]);_0x356e2[_0xa86d('0x32')]=qs[_0xa86d('0x32')](_0x866ed4[_0xa86d('0x2b')]['offset']);}return _0x1205b7[_0xa86d('0x4e')](_0x356e2);}})[_0xa86d('0x1f')](function(_0x61447c){if(_0x61447c){return _0x61447c?{'count':_0x32e967,'rows':_0x61447c}:null;}})['then'](respondWithResult(_0x29a5c2,null))[_0xa86d('0x42')](handleError(_0x29a5c2,null));};