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 _0x1daf=['role','UserProfileSection','userProfileId','autoAssociation','error','params','addInterval','getIntervals','findOne','addIntervals','transaction','bulkCreate','eml-format','fast-json-patch','request-promise','moment','mustache','util','path','sox','ejs','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/extensions/rewrite','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','reject','save','update','then','Intervals','UserProfileResource','destroy','stack','name','send','index','map','rawAttributes','fieldName','type','key','model','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','filter','merge','VIRTUAL','options','Interval','include','findAll','rows','keys','length','find','catch','create','body','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user'];(function(_0x474bc0,_0x26989c){var _0x4b24cf=function(_0x4be866){while(--_0x4be866){_0x474bc0['push'](_0x474bc0['shift']());}};_0x4b24cf(++_0x26989c);}(_0x1daf,0x17c));var _0xf1da=function(_0x3bf83f,_0x181cac){_0x3bf83f=_0x3bf83f-0x0;var _0x22c4a9=_0x1daf[_0x3bf83f];return _0x22c4a9;};'use strict';var emlformat=require(_0xf1da('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0xf1da('0x1'));var rp=require(_0xf1da('0x2'));var moment=require(_0xf1da('0x3'));var BPromise=require('bluebird');var Mustache=require(_0xf1da('0x4'));var util=require(_0xf1da('0x5'));var path=require(_0xf1da('0x6'));var sox=require(_0xf1da('0x7'));var csv=require('to-csv');var ejs=require(_0xf1da('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0xf1da('0x9'));var crypto=require(_0xf1da('0xa'));var jsforce=require(_0xf1da('0xb'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0xf1da('0xc'));var Papa=require(_0xf1da('0xd'));var Redis=require(_0xf1da('0xe'));var authService=require(_0xf1da('0xf'));var qs=require(_0xf1da('0x10'));var as=require(_0xf1da('0x11'));var hardwareService=require(_0xf1da('0x12'));var logger=require(_0xf1da('0x13'))(_0xf1da('0x14'));var utils=require(_0xf1da('0x15'));var config=require(_0xf1da('0x16'));var licenseUtil=require(_0xf1da('0x17'));var db=require(_0xf1da('0x18'))['db'];var extensions=require(_0xf1da('0x19'));function respondWithStatusCode(_0x4de893,_0x5cdc90){_0x5cdc90=_0x5cdc90||0xcc;return function(_0x5658b9){if(_0x5658b9){return _0x4de893[_0xf1da('0x1a')](_0x5cdc90);}return _0x4de893[_0xf1da('0x1b')](_0x5cdc90)[_0xf1da('0x1c')]();};}function respondWithResult(_0x1a9740,_0x191b05){_0x191b05=_0x191b05||0xc8;return function(_0x7e6f45){if(_0x7e6f45){return _0x1a9740[_0xf1da('0x1b')](_0x191b05)[_0xf1da('0x1d')](_0x7e6f45);}};}function respondWithFilteredResult(_0x84e1cd,_0x4dbb89){return function(_0x159618){if(_0x159618){var _0x25df2b=typeof _0x4dbb89[_0xf1da('0x1e')]===_0xf1da('0x1f')&&typeof _0x4dbb89['limit']===_0xf1da('0x1f');var _0xb384db=_0x159618[_0xf1da('0x20')];var _0x1cef58=_0x25df2b?0x0:_0x4dbb89[_0xf1da('0x1e')];var _0x46761c=_0x25df2b?_0x159618[_0xf1da('0x20')]:_0x4dbb89[_0xf1da('0x1e')]+_0x4dbb89[_0xf1da('0x21')];var _0x2ccf4c;if(_0x46761c>=_0xb384db){_0x46761c=_0xb384db;_0x2ccf4c=0xc8;}else{_0x2ccf4c=0xce;}_0x84e1cd[_0xf1da('0x1b')](_0x2ccf4c);return _0x84e1cd[_0xf1da('0x22')](_0xf1da('0x23'),_0x1cef58+'-'+_0x46761c+'/'+_0xb384db)['json'](_0x159618);}return null;};}function patchUpdates(_0x15c82){return function(_0x284693){try{jsonpatch['apply'](_0x284693,_0x15c82,!![]);}catch(_0x49235e){return BPromise[_0xf1da('0x24')](_0x49235e);}return _0x284693[_0xf1da('0x25')]();};}function saveUpdates(_0x580721,_0x25c928){return function(_0x3b001c){if(_0x3b001c){return _0x3b001c[_0xf1da('0x26')](_0x580721)[_0xf1da('0x27')](function(_0x499acc){return _0x499acc;});}return null;};}function removeEntity(_0x388541,_0x4cc73b){return function(_0x176f9f){if(_0x176f9f){return _0x176f9f['destroy']()['then'](function(){var _0x48e143=_0x176f9f['get']({'plain':!![]});var _0x39cb39=_0xf1da('0x28');return db[_0xf1da('0x29')][_0xf1da('0x2a')]({'where':{'type':_0x39cb39,'resourceId':_0x48e143['id']}})[_0xf1da('0x27')](function(){return _0x176f9f;});})[_0xf1da('0x27')](function(){_0x388541[_0xf1da('0x1b')](0xcc)[_0xf1da('0x1c')]();});}};}function handleEntityNotFound(_0x1029eb,_0xfed4ea){return function(_0x4ba3a0){if(!_0x4ba3a0){_0x1029eb['sendStatus'](0x194);}return _0x4ba3a0;};}function handleError(_0x4f161c,_0xd9522f){_0xd9522f=_0xd9522f||0x1f4;return function(_0x13dc66){logger['error'](_0x13dc66[_0xf1da('0x2b')]);if(_0x13dc66[_0xf1da('0x2c')]){delete _0x13dc66[_0xf1da('0x2c')];}_0x4f161c['status'](_0xd9522f)[_0xf1da('0x2d')](_0x13dc66);};}exports[_0xf1da('0x2e')]=function(_0x2c34e8,_0x284730){var _0x5d0692={},_0x1bde66={},_0x43f461={'count':0x0,'rows':[]};var _0x357774=_[_0xf1da('0x2f')](db['Interval'][_0xf1da('0x30')],function(_0x1b5740){return{'name':_0x1b5740[_0xf1da('0x31')],'type':_0x1b5740[_0xf1da('0x32')][_0xf1da('0x33')]};});_0x1bde66[_0xf1da('0x34')]=_[_0xf1da('0x2f')](_0x357774,_0xf1da('0x2c'));_0x1bde66['query']=_['keys'](_0x2c34e8[_0xf1da('0x35')]);_0x1bde66[_0xf1da('0x36')]=_[_0xf1da('0x37')](_0x1bde66[_0xf1da('0x34')],_0x1bde66[_0xf1da('0x35')]);_0x5d0692[_0xf1da('0x38')]=_[_0xf1da('0x37')](_0x1bde66['model'],qs[_0xf1da('0x39')](_0x2c34e8['query'][_0xf1da('0x39')]));_0x5d0692[_0xf1da('0x38')]=_0x5d0692['attributes']['length']?_0x5d0692['attributes']:_0x1bde66[_0xf1da('0x34')];if(!_0x2c34e8[_0xf1da('0x35')][_0xf1da('0x3a')](_0xf1da('0x3b'))){_0x5d0692[_0xf1da('0x21')]=qs[_0xf1da('0x21')](_0x2c34e8['query']['limit']);_0x5d0692[_0xf1da('0x1e')]=qs[_0xf1da('0x1e')](_0x2c34e8[_0xf1da('0x35')][_0xf1da('0x1e')]);}_0x5d0692[_0xf1da('0x3c')]=qs[_0xf1da('0x3d')](_0x2c34e8[_0xf1da('0x35')][_0xf1da('0x3d')]);_0x5d0692[_0xf1da('0x3e')]=qs[_0xf1da('0x36')](_['pick'](_0x2c34e8[_0xf1da('0x35')],_0x1bde66[_0xf1da('0x36')]),_0x357774);if(_0x2c34e8[_0xf1da('0x35')][_0xf1da('0x3f')]){_0x5d0692[_0xf1da('0x3e')]=_[_0xf1da('0x40')](_0x5d0692['where'],{'$or':_[_0xf1da('0x2f')](_0x357774,function(_0x4633a9){if(_0x4633a9['type']!==_0xf1da('0x41')){var _0x4855f3={};_0x4855f3[_0x4633a9[_0xf1da('0x2c')]]={'$like':'%'+_0x2c34e8[_0xf1da('0x35')][_0xf1da('0x3f')]+'%'};return _0x4855f3;}})});}_0x5d0692=_['merge']({},_0x5d0692,_0x2c34e8[_0xf1da('0x42')]);var _0x3273da={'where':_0x5d0692[_0xf1da('0x3e')]};return db[_0xf1da('0x43')][_0xf1da('0x20')](_0x3273da)[_0xf1da('0x27')](function(_0x1a21f9){_0x43f461[_0xf1da('0x20')]=_0x1a21f9;if(_0x2c34e8[_0xf1da('0x35')]['includeAll']){_0x5d0692[_0xf1da('0x44')]=[{'all':!![]}];}return db['Interval'][_0xf1da('0x45')](_0x5d0692);})[_0xf1da('0x27')](function(_0x130258){_0x43f461[_0xf1da('0x46')]=_0x130258;return _0x43f461;})[_0xf1da('0x27')](respondWithFilteredResult(_0x284730,_0x5d0692))['catch'](handleError(_0x284730,null));};exports['show']=function(_0x56748a,_0x3dbdd9){var _0x32c90d={'raw':!![],'where':{'id':_0x56748a['params']['id']}},_0x2b605b={};_0x2b605b[_0xf1da('0x34')]=_[_0xf1da('0x47')](db[_0xf1da('0x43')][_0xf1da('0x30')]);_0x2b605b[_0xf1da('0x35')]=_[_0xf1da('0x47')](_0x56748a[_0xf1da('0x35')]);_0x2b605b[_0xf1da('0x36')]=_[_0xf1da('0x37')](_0x2b605b[_0xf1da('0x34')],_0x2b605b[_0xf1da('0x35')]);_0x32c90d[_0xf1da('0x38')]=_['intersection'](_0x2b605b[_0xf1da('0x34')],qs[_0xf1da('0x39')](_0x56748a[_0xf1da('0x35')][_0xf1da('0x39')]));_0x32c90d['attributes']=_0x32c90d['attributes'][_0xf1da('0x48')]?_0x32c90d['attributes']:_0x2b605b['model'];if(_0x56748a[_0xf1da('0x35')]['includeAll']){_0x32c90d['include']=[{'all':!![]}];}_0x32c90d=_['merge']({},_0x32c90d,_0x56748a[_0xf1da('0x42')]);return db['Interval'][_0xf1da('0x49')](_0x32c90d)['then'](handleEntityNotFound(_0x3dbdd9,null))['then'](respondWithResult(_0x3dbdd9,null))[_0xf1da('0x4a')](handleError(_0x3dbdd9,null));};exports[_0xf1da('0x4b')]=function(_0x4baa08,_0x59cd87){return db['Interval'][_0xf1da('0x4b')](_0x4baa08[_0xf1da('0x4c')],{})['then'](function(_0x1b89c8){var _0x46d9e8=_0x4baa08[_0xf1da('0x4d')][_0xf1da('0x4e')]({'plain':!![]});if(!_0x46d9e8)throw new Error(_0xf1da('0x4f'));if(_0x46d9e8[_0xf1da('0x50')]===_0xf1da('0x4d')){var _0x57eb14=_0x1b89c8[_0xf1da('0x4e')]({'plain':!![]});var _0x1d4359='Intervals';return db[_0xf1da('0x51')][_0xf1da('0x49')]({'where':{'name':_0x1d4359,'userProfileId':_0x46d9e8[_0xf1da('0x52')]},'raw':!![]})['then'](function(_0x3f4f83){if(_0x3f4f83&&_0x3f4f83[_0xf1da('0x53')]===0x0){return db[_0xf1da('0x29')]['create']({'name':_0x57eb14[_0xf1da('0x2c')],'resourceId':_0x57eb14['id'],'type':_0x3f4f83[_0xf1da('0x2c')],'sectionId':_0x3f4f83['id']},{})['then'](function(){return _0x1b89c8;});}else{return _0x1b89c8;}})[_0xf1da('0x4a')](function(_0x193d08){logger[_0xf1da('0x54')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x193d08);throw _0x193d08;});}return _0x1b89c8;})['then'](respondWithResult(_0x59cd87,0xc9))[_0xf1da('0x4a')](handleError(_0x59cd87,null));};exports[_0xf1da('0x26')]=function(_0x3c17f5,_0x10788a){if(_0x3c17f5[_0xf1da('0x4c')]['id']){delete _0x3c17f5[_0xf1da('0x4c')]['id'];}return db[_0xf1da('0x43')][_0xf1da('0x49')]({'where':{'id':_0x3c17f5[_0xf1da('0x55')]['id']}})[_0xf1da('0x27')](handleEntityNotFound(_0x10788a,null))[_0xf1da('0x27')](saveUpdates(_0x3c17f5[_0xf1da('0x4c')],null))[_0xf1da('0x27')](respondWithResult(_0x10788a,null))[_0xf1da('0x4a')](handleError(_0x10788a,null));};exports[_0xf1da('0x2a')]=function(_0x1e4123,_0x1a6870){return db[_0xf1da('0x43')][_0xf1da('0x49')]({'where':{'id':_0x1e4123[_0xf1da('0x55')]['id']}})['then'](handleEntityNotFound(_0x1a6870,null))['then'](removeEntity(_0x1a6870,null))[_0xf1da('0x4a')](handleError(_0x1a6870,null));};exports[_0xf1da('0x56')]=function(_0x4c581a,_0x16bfc3,_0x205629){if(_0x4c581a['body']['id']){delete _0x4c581a[_0xf1da('0x4c')]['id'];}return db['Interval']['find']({'where':{'id':_0x4c581a[_0xf1da('0x55')]['id']}})[_0xf1da('0x27')](handleEntityNotFound(_0x16bfc3,null))[_0xf1da('0x27')](function(_0x3a4205){if(_0x3a4205){_0x4c581a[_0xf1da('0x4c')]['IntervalId']=_0x3a4205['id'];return db[_0xf1da('0x43')][_0xf1da('0x4b')](_0x4c581a[_0xf1da('0x4c')]);}})[_0xf1da('0x27')](respondWithResult(_0x16bfc3,null))[_0xf1da('0x4a')](handleError(_0x16bfc3,null));};exports[_0xf1da('0x57')]=function(_0x5ed1a6,_0x2a698c,_0x3bfc1c){var _0x536347={};var _0x19bd79={};var _0x3e465c;var _0x47c5ba;return db[_0xf1da('0x43')][_0xf1da('0x58')]({'where':{'id':_0x5ed1a6[_0xf1da('0x55')]['id']}})['then'](handleEntityNotFound(_0x2a698c,null))[_0xf1da('0x27')](function(_0x538b60){if(_0x538b60){_0x3e465c=_0x538b60;_0x19bd79[_0xf1da('0x34')]=_[_0xf1da('0x47')](db[_0xf1da('0x43')][_0xf1da('0x30')]);_0x19bd79['query']=_[_0xf1da('0x47')](_0x5ed1a6[_0xf1da('0x35')]);_0x19bd79[_0xf1da('0x36')]=_['intersection'](_0x19bd79[_0xf1da('0x34')],_0x19bd79[_0xf1da('0x35')]);_0x536347[_0xf1da('0x38')]=_[_0xf1da('0x37')](_0x19bd79[_0xf1da('0x34')],qs[_0xf1da('0x39')](_0x5ed1a6['query'][_0xf1da('0x39')]));_0x536347[_0xf1da('0x38')]=_0x536347['attributes']['length']?_0x536347[_0xf1da('0x38')]:_0x19bd79['model'];_0x536347[_0xf1da('0x3c')]=qs['sort'](_0x5ed1a6[_0xf1da('0x35')]['sort']);_0x536347[_0xf1da('0x3e')]=qs[_0xf1da('0x36')](_['pick'](_0x5ed1a6[_0xf1da('0x35')],_0x19bd79['filters']));if(_0x5ed1a6['query'][_0xf1da('0x3f')]){_0x536347[_0xf1da('0x3e')]=_[_0xf1da('0x40')](_0x536347[_0xf1da('0x3e')],{'$or':_[_0xf1da('0x2f')](_0x536347[_0xf1da('0x38')],function(_0x5f57a7){var _0x169dd1={};_0x169dd1[_0x5f57a7]={'$like':'%'+_0x5ed1a6[_0xf1da('0x35')]['filter']+'%'};return _0x169dd1;})});}_0x536347=_[_0xf1da('0x40')]({},_0x536347,_0x5ed1a6[_0xf1da('0x42')]);return _0x3e465c['getIntervals'](_0x536347);}})['then'](function(_0x583154){if(_0x583154){_0x47c5ba=_0x583154[_0xf1da('0x48')];if(!_0x5ed1a6['query'][_0xf1da('0x3a')]('nolimit')){_0x536347[_0xf1da('0x21')]=qs[_0xf1da('0x21')](_0x5ed1a6[_0xf1da('0x35')][_0xf1da('0x21')]);_0x536347[_0xf1da('0x1e')]=qs['offset'](_0x5ed1a6[_0xf1da('0x35')]['offset']);}return _0x3e465c['getIntervals'](_0x536347);}})['then'](function(_0x5c1dfc){if(_0x5c1dfc){return _0x5c1dfc?{'count':_0x47c5ba,'rows':_0x5c1dfc}:null;}})[_0xf1da('0x27')](respondWithResult(_0x2a698c,null))['catch'](handleError(_0x2a698c,null));};exports[_0xf1da('0x59')]=function(_0x83adb1,_0x2f9cdc,_0x431799){return db[_0xf1da('0x43')][_0xf1da('0x58')]({'where':{'id':_0x83adb1[_0xf1da('0x55')]['id']}})['then'](handleEntityNotFound(_0x2f9cdc,null))[_0xf1da('0x27')](function(_0x14b7ff){if(_0x14b7ff){return db['sequelize'][_0xf1da('0x5a')](function(_0x3b94d6){return db[_0xf1da('0x43')]['destroy']({'where':{'IntervalId':_0x83adb1[_0xf1da('0x55')]['id']},'transaction':_0x3b94d6})[_0xf1da('0x27')](function(_0x255255){var _0x5ae5e9=_[_0xf1da('0x2f')](_0x83adb1[_0xf1da('0x4c')],function(_0x13117a){delete _0x13117a['id'];_0x13117a['IntervalId']=_0x83adb1['params']['id'];return _0x13117a;});return db[_0xf1da('0x43')][_0xf1da('0x5b')](_0x5ae5e9,{'transaction':_0x3b94d6});});})['then'](function(){return db['Interval'][_0xf1da('0x45')]({'where':{'IntervalId':_0x83adb1['params']['id']}});});}})[_0xf1da('0x27')](respondWithResult(_0x2f9cdc,null))[_0xf1da('0x4a')](handleError(_0x2f9cdc,null));};