Built motion from commit 85328c08.|2.5.50
[motion2.git] / server / api / interval / interval.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 _0xa8c2=['path','sox','to-csv','ejs','lodash','squel','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','apply','save','then','destroy','get','Intervals','error','stack','name','send','index','map','Interval','fieldName','type','model','keys','query','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','rows','rawAttributes','find','catch','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileResource','update','body','params','addInterval','getIntervals','findOne','sequelize','transaction','IntervalId','bulkCreate','findAll','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util'];(function(_0x5a36e1,_0x3f552b){var _0x284436=function(_0x5b56b4){while(--_0x5b56b4){_0x5a36e1['push'](_0x5a36e1['shift']());}};_0x284436(++_0x3f552b);}(_0xa8c2,0xff));var _0x2a8c=function(_0x463a03,_0x13914f){_0x463a03=_0x463a03-0x0;var _0x5baa30=_0xa8c2[_0x463a03];return _0x5baa30;};'use strict';var emlformat=require(_0x2a8c('0x0'));var rimraf=require(_0x2a8c('0x1'));var zipdir=require(_0x2a8c('0x2'));var jsonpatch=require(_0x2a8c('0x3'));var rp=require(_0x2a8c('0x4'));var moment=require(_0x2a8c('0x5'));var BPromise=require(_0x2a8c('0x6'));var Mustache=require(_0x2a8c('0x7'));var util=require(_0x2a8c('0x8'));var path=require(_0x2a8c('0x9'));var sox=require(_0x2a8c('0xa'));var csv=require(_0x2a8c('0xb'));var ejs=require(_0x2a8c('0xc'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x2a8c('0xd'));var squel=require(_0x2a8c('0xe'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x2a8c('0xf'));var Redis=require(_0x2a8c('0x10'));var authService=require(_0x2a8c('0x11'));var qs=require(_0x2a8c('0x12'));var as=require(_0x2a8c('0x13'));var hardwareService=require(_0x2a8c('0x14'));var logger=require(_0x2a8c('0x15'))('api');var utils=require(_0x2a8c('0x16'));var config=require(_0x2a8c('0x17'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];var extensions=require('../../components/extensions/rewrite');function respondWithStatusCode(_0x41a415,_0x3faaaf){_0x3faaaf=_0x3faaaf||0xcc;return function(_0xfe5d42){if(_0xfe5d42){return _0x41a415[_0x2a8c('0x18')](_0x3faaaf);}return _0x41a415[_0x2a8c('0x19')](_0x3faaaf)[_0x2a8c('0x1a')]();};}function respondWithResult(_0x485299,_0x5ef278){_0x5ef278=_0x5ef278||0xc8;return function(_0xcf7ba4){if(_0xcf7ba4){return _0x485299[_0x2a8c('0x19')](_0x5ef278)[_0x2a8c('0x1b')](_0xcf7ba4);}};}function respondWithFilteredResult(_0x373360,_0x5019a2){return function(_0x3e9e40){if(_0x3e9e40){var _0x385531=typeof _0x5019a2[_0x2a8c('0x1c')]===_0x2a8c('0x1d')&&typeof _0x5019a2['limit']==='undefined';var _0x1d7c2c=_0x3e9e40[_0x2a8c('0x1e')];var _0x5b49d3=_0x385531?0x0:_0x5019a2[_0x2a8c('0x1c')];var _0x2adbaf=_0x385531?_0x3e9e40[_0x2a8c('0x1e')]:_0x5019a2['offset']+_0x5019a2[_0x2a8c('0x1f')];var _0x3ad641;if(_0x2adbaf>=_0x1d7c2c){_0x2adbaf=_0x1d7c2c;_0x3ad641=0xc8;}else{_0x3ad641=0xce;}_0x373360[_0x2a8c('0x19')](_0x3ad641);return _0x373360[_0x2a8c('0x20')](_0x2a8c('0x21'),_0x5b49d3+'-'+_0x2adbaf+'/'+_0x1d7c2c)[_0x2a8c('0x1b')](_0x3e9e40);}return null;};}function patchUpdates(_0x4c5c96){return function(_0x386457){try{jsonpatch[_0x2a8c('0x22')](_0x386457,_0x4c5c96,!![]);}catch(_0x53261d){return BPromise['reject'](_0x53261d);}return _0x386457[_0x2a8c('0x23')]();};}function saveUpdates(_0x349501,_0x5ac2ff){return function(_0x346251){if(_0x346251){return _0x346251['update'](_0x349501)[_0x2a8c('0x24')](function(_0x1ee313){return _0x1ee313;});}return null;};}function removeEntity(_0x4f59c4,_0x453ecb){return function(_0x2c9b1a){if(_0x2c9b1a){return _0x2c9b1a[_0x2a8c('0x25')]()[_0x2a8c('0x24')](function(){var _0x1d4fb2=_0x2c9b1a[_0x2a8c('0x26')]({'plain':!![]});var _0x4136de=_0x2a8c('0x27');return db['UserProfileResource'][_0x2a8c('0x25')]({'where':{'type':_0x4136de,'resourceId':_0x1d4fb2['id']}})[_0x2a8c('0x24')](function(){return _0x2c9b1a;});})[_0x2a8c('0x24')](function(){_0x4f59c4['status'](0xcc)[_0x2a8c('0x1a')]();});}};}function handleEntityNotFound(_0x352560,_0x548aeb){return function(_0x257206){if(!_0x257206){_0x352560[_0x2a8c('0x18')](0x194);}return _0x257206;};}function handleError(_0xe24de7,_0x23f087){_0x23f087=_0x23f087||0x1f4;return function(_0x4cd18f){logger[_0x2a8c('0x28')](_0x4cd18f[_0x2a8c('0x29')]);if(_0x4cd18f[_0x2a8c('0x2a')]){delete _0x4cd18f[_0x2a8c('0x2a')];}_0xe24de7['status'](_0x23f087)[_0x2a8c('0x2b')](_0x4cd18f);};}exports[_0x2a8c('0x2c')]=function(_0x32630d,_0x2b46ce){var _0x24a843={},_0x27bc62={},_0x5a99b4={'count':0x0,'rows':[]};var _0x3d9cfc=_[_0x2a8c('0x2d')](db[_0x2a8c('0x2e')]['rawAttributes'],function(_0x4acf21){return{'name':_0x4acf21[_0x2a8c('0x2f')],'type':_0x4acf21[_0x2a8c('0x30')]['key']};});_0x27bc62[_0x2a8c('0x31')]=_[_0x2a8c('0x2d')](_0x3d9cfc,_0x2a8c('0x2a'));_0x27bc62['query']=_[_0x2a8c('0x32')](_0x32630d[_0x2a8c('0x33')]);_0x27bc62[_0x2a8c('0x34')]=_['intersection'](_0x27bc62[_0x2a8c('0x31')],_0x27bc62[_0x2a8c('0x33')]);_0x24a843[_0x2a8c('0x35')]=_[_0x2a8c('0x36')](_0x27bc62[_0x2a8c('0x31')],qs['fields'](_0x32630d[_0x2a8c('0x33')][_0x2a8c('0x37')]));_0x24a843[_0x2a8c('0x35')]=_0x24a843[_0x2a8c('0x35')][_0x2a8c('0x38')]?_0x24a843[_0x2a8c('0x35')]:_0x27bc62['model'];if(!_0x32630d['query'][_0x2a8c('0x39')](_0x2a8c('0x3a'))){_0x24a843[_0x2a8c('0x1f')]=qs['limit'](_0x32630d[_0x2a8c('0x33')]['limit']);_0x24a843['offset']=qs[_0x2a8c('0x1c')](_0x32630d[_0x2a8c('0x33')][_0x2a8c('0x1c')]);}_0x24a843[_0x2a8c('0x3b')]=qs['sort'](_0x32630d[_0x2a8c('0x33')][_0x2a8c('0x3c')]);_0x24a843[_0x2a8c('0x3d')]=qs['filters'](_[_0x2a8c('0x3e')](_0x32630d[_0x2a8c('0x33')],_0x27bc62['filters']),_0x3d9cfc);if(_0x32630d[_0x2a8c('0x33')][_0x2a8c('0x3f')]){_0x24a843[_0x2a8c('0x3d')]=_[_0x2a8c('0x40')](_0x24a843[_0x2a8c('0x3d')],{'$or':_[_0x2a8c('0x2d')](_0x3d9cfc,function(_0x41a513){if(_0x41a513[_0x2a8c('0x30')]!==_0x2a8c('0x41')){var _0x9191ca={};_0x9191ca[_0x41a513[_0x2a8c('0x2a')]]={'$like':'%'+_0x32630d['query'][_0x2a8c('0x3f')]+'%'};return _0x9191ca;}})});}_0x24a843=_['merge']({},_0x24a843,_0x32630d[_0x2a8c('0x42')]);var _0x359770={'where':_0x24a843[_0x2a8c('0x3d')]};return db[_0x2a8c('0x2e')]['count'](_0x359770)[_0x2a8c('0x24')](function(_0x212e68){_0x5a99b4[_0x2a8c('0x1e')]=_0x212e68;if(_0x32630d[_0x2a8c('0x33')][_0x2a8c('0x43')]){_0x24a843[_0x2a8c('0x44')]=[{'all':!![]}];}return db['Interval']['findAll'](_0x24a843);})[_0x2a8c('0x24')](function(_0x3e77db){_0x5a99b4[_0x2a8c('0x45')]=_0x3e77db;return _0x5a99b4;})[_0x2a8c('0x24')](respondWithFilteredResult(_0x2b46ce,_0x24a843))['catch'](handleError(_0x2b46ce,null));};exports['show']=function(_0x17bbe8,_0x1d3d9e){var _0xdc5639={'raw':!![],'where':{'id':_0x17bbe8['params']['id']}},_0x48e16c={};_0x48e16c[_0x2a8c('0x31')]=_[_0x2a8c('0x32')](db[_0x2a8c('0x2e')][_0x2a8c('0x46')]);_0x48e16c[_0x2a8c('0x33')]=_[_0x2a8c('0x32')](_0x17bbe8[_0x2a8c('0x33')]);_0x48e16c[_0x2a8c('0x34')]=_[_0x2a8c('0x36')](_0x48e16c['model'],_0x48e16c['query']);_0xdc5639[_0x2a8c('0x35')]=_['intersection'](_0x48e16c[_0x2a8c('0x31')],qs[_0x2a8c('0x37')](_0x17bbe8[_0x2a8c('0x33')][_0x2a8c('0x37')]));_0xdc5639[_0x2a8c('0x35')]=_0xdc5639['attributes']['length']?_0xdc5639[_0x2a8c('0x35')]:_0x48e16c[_0x2a8c('0x31')];if(_0x17bbe8[_0x2a8c('0x33')][_0x2a8c('0x43')]){_0xdc5639[_0x2a8c('0x44')]=[{'all':!![]}];}_0xdc5639=_[_0x2a8c('0x40')]({},_0xdc5639,_0x17bbe8[_0x2a8c('0x42')]);return db[_0x2a8c('0x2e')][_0x2a8c('0x47')](_0xdc5639)[_0x2a8c('0x24')](handleEntityNotFound(_0x1d3d9e,null))[_0x2a8c('0x24')](respondWithResult(_0x1d3d9e,null))[_0x2a8c('0x48')](handleError(_0x1d3d9e,null));};exports[_0x2a8c('0x49')]=function(_0x42d782,_0x1e74d6){return db[_0x2a8c('0x2e')][_0x2a8c('0x49')](_0x42d782['body'],{})['then'](function(_0xfee574){var _0x507bef=_0x42d782[_0x2a8c('0x4a')][_0x2a8c('0x26')]({'plain':!![]});if(!_0x507bef)throw new Error(_0x2a8c('0x4b'));if(_0x507bef['role']==='user'){var _0x5f1e1a=_0xfee574[_0x2a8c('0x26')]({'plain':!![]});var _0x5b6e88=_0x2a8c('0x27');return db['UserProfileSection'][_0x2a8c('0x47')]({'where':{'name':_0x5b6e88,'userProfileId':_0x507bef['userProfileId']},'raw':!![]})[_0x2a8c('0x24')](function(_0x49ccdb){if(_0x49ccdb&&_0x49ccdb['autoAssociation']===0x0){return db[_0x2a8c('0x4c')]['create']({'name':_0x5f1e1a['name'],'resourceId':_0x5f1e1a['id'],'type':_0x49ccdb['name'],'sectionId':_0x49ccdb['id']},{})['then'](function(){return _0xfee574;});}else{return _0xfee574;}})[_0x2a8c('0x48')](function(_0x1f0cfc){logger[_0x2a8c('0x28')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x1f0cfc);throw _0x1f0cfc;});}return _0xfee574;})['then'](respondWithResult(_0x1e74d6,0xc9))[_0x2a8c('0x48')](handleError(_0x1e74d6,null));};exports[_0x2a8c('0x4d')]=function(_0x44aba5,_0x23d096){if(_0x44aba5[_0x2a8c('0x4e')]['id']){delete _0x44aba5['body']['id'];}return db[_0x2a8c('0x2e')][_0x2a8c('0x47')]({'where':{'id':_0x44aba5[_0x2a8c('0x4f')]['id']}})[_0x2a8c('0x24')](handleEntityNotFound(_0x23d096,null))[_0x2a8c('0x24')](saveUpdates(_0x44aba5[_0x2a8c('0x4e')],null))[_0x2a8c('0x24')](respondWithResult(_0x23d096,null))['catch'](handleError(_0x23d096,null));};exports[_0x2a8c('0x25')]=function(_0x31808d,_0x3e90bc){return db[_0x2a8c('0x2e')][_0x2a8c('0x47')]({'where':{'id':_0x31808d[_0x2a8c('0x4f')]['id']}})['then'](handleEntityNotFound(_0x3e90bc,null))['then'](removeEntity(_0x3e90bc,null))['catch'](handleError(_0x3e90bc,null));};exports[_0x2a8c('0x50')]=function(_0x485159,_0x57f702,_0x23b07a){if(_0x485159[_0x2a8c('0x4e')]['id']){delete _0x485159[_0x2a8c('0x4e')]['id'];}return db['Interval']['find']({'where':{'id':_0x485159['params']['id']}})[_0x2a8c('0x24')](handleEntityNotFound(_0x57f702,null))[_0x2a8c('0x24')](function(_0x299b7f){if(_0x299b7f){_0x485159['body']['IntervalId']=_0x299b7f['id'];return db[_0x2a8c('0x2e')]['create'](_0x485159[_0x2a8c('0x4e')]);}})[_0x2a8c('0x24')](respondWithResult(_0x57f702,null))[_0x2a8c('0x48')](handleError(_0x57f702,null));};exports[_0x2a8c('0x51')]=function(_0x5a33db,_0x6636ea,_0xfda042){var _0x2df024={};var _0x490a57={};var _0x32019c;var _0x4f0f87;return db[_0x2a8c('0x2e')][_0x2a8c('0x52')]({'where':{'id':_0x5a33db[_0x2a8c('0x4f')]['id']}})['then'](handleEntityNotFound(_0x6636ea,null))[_0x2a8c('0x24')](function(_0x17839d){if(_0x17839d){_0x32019c=_0x17839d;_0x490a57[_0x2a8c('0x31')]=_[_0x2a8c('0x32')](db[_0x2a8c('0x2e')][_0x2a8c('0x46')]);_0x490a57['query']=_['keys'](_0x5a33db[_0x2a8c('0x33')]);_0x490a57['filters']=_['intersection'](_0x490a57[_0x2a8c('0x31')],_0x490a57[_0x2a8c('0x33')]);_0x2df024[_0x2a8c('0x35')]=_[_0x2a8c('0x36')](_0x490a57['model'],qs[_0x2a8c('0x37')](_0x5a33db[_0x2a8c('0x33')][_0x2a8c('0x37')]));_0x2df024[_0x2a8c('0x35')]=_0x2df024[_0x2a8c('0x35')][_0x2a8c('0x38')]?_0x2df024[_0x2a8c('0x35')]:_0x490a57[_0x2a8c('0x31')];_0x2df024[_0x2a8c('0x3b')]=qs[_0x2a8c('0x3c')](_0x5a33db[_0x2a8c('0x33')][_0x2a8c('0x3c')]);_0x2df024[_0x2a8c('0x3d')]=qs['filters'](_['pick'](_0x5a33db[_0x2a8c('0x33')],_0x490a57[_0x2a8c('0x34')]));if(_0x5a33db['query'][_0x2a8c('0x3f')]){_0x2df024['where']=_[_0x2a8c('0x40')](_0x2df024[_0x2a8c('0x3d')],{'$or':_[_0x2a8c('0x2d')](_0x2df024[_0x2a8c('0x35')],function(_0xd6e6bf){var _0x2e6347={};_0x2e6347[_0xd6e6bf]={'$like':'%'+_0x5a33db['query'][_0x2a8c('0x3f')]+'%'};return _0x2e6347;})});}_0x2df024=_['merge']({},_0x2df024,_0x5a33db[_0x2a8c('0x42')]);return _0x32019c[_0x2a8c('0x51')](_0x2df024);}})['then'](function(_0xc06154){if(_0xc06154){_0x4f0f87=_0xc06154['length'];if(!_0x5a33db['query']['hasOwnProperty'](_0x2a8c('0x3a'))){_0x2df024[_0x2a8c('0x1f')]=qs[_0x2a8c('0x1f')](_0x5a33db['query']['limit']);_0x2df024['offset']=qs[_0x2a8c('0x1c')](_0x5a33db[_0x2a8c('0x33')][_0x2a8c('0x1c')]);}return _0x32019c['getIntervals'](_0x2df024);}})[_0x2a8c('0x24')](function(_0x3ef560){if(_0x3ef560){return _0x3ef560?{'count':_0x4f0f87,'rows':_0x3ef560}:null;}})[_0x2a8c('0x24')](respondWithResult(_0x6636ea,null))[_0x2a8c('0x48')](handleError(_0x6636ea,null));};exports['addIntervals']=function(_0x4f879f,_0x16a5a5,_0x2d773b){return db[_0x2a8c('0x2e')][_0x2a8c('0x52')]({'where':{'id':_0x4f879f['params']['id']}})[_0x2a8c('0x24')](handleEntityNotFound(_0x16a5a5,null))['then'](function(_0x7c2502){if(_0x7c2502){return db[_0x2a8c('0x53')][_0x2a8c('0x54')](function(_0x3b8320){return db['Interval']['destroy']({'where':{'IntervalId':_0x4f879f['params']['id']},'transaction':_0x3b8320})['then'](function(_0x58c305){var _0x29ae77=_[_0x2a8c('0x2d')](_0x4f879f[_0x2a8c('0x4e')],function(_0x206a00){delete _0x206a00['id'];_0x206a00[_0x2a8c('0x55')]=_0x4f879f[_0x2a8c('0x4f')]['id'];return _0x206a00;});return db['Interval'][_0x2a8c('0x56')](_0x29ae77,{'transaction':_0x3b8320});});})['then'](function(){return db[_0x2a8c('0x2e')][_0x2a8c('0x57')]({'where':{'IntervalId':_0x4f879f[_0x2a8c('0x4f')]['id']}});});}})[_0x2a8c('0x24')](respondWithResult(_0x16a5a5,null))[_0x2a8c('0x48')](handleError(_0x16a5a5,null));};