0d7f91da8eba8f0c69c8b0838adc0d31746bedb9
[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 _0x57b2=['save','update','then','destroy','Intervals','UserProfileResource','end','error','stack','send','index','rawAttributes','fieldName','type','key','model','map','name','keys','query','filters','intersection','attributes','length','hasOwnProperty','limit','order','pick','filter','where','merge','VIRTUAL','Interval','includeAll','include','findAll','rows','catch','show','params','fields','options','create','body','get','find','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','addInterval','getIntervals','findOne','sort','nolimit','sequelize','transaction','bulkCreate','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/utils','../../config/license/util','sendStatus','status','offset','undefined','count','set','json','apply'];(function(_0x3bf83f,_0x181cac){var _0x22c4a9=function(_0xb3ff0d){while(--_0xb3ff0d){_0x3bf83f['push'](_0x3bf83f['shift']());}};_0x22c4a9(++_0x181cac);}(_0x57b2,0x14a));var _0x257b=function(_0x315f94,_0x3b92e0){_0x315f94=_0x315f94-0x0;var _0x3027f5=_0x57b2[_0x315f94];return _0x3027f5;};'use strict';var emlformat=require(_0x257b('0x0'));var rimraf=require(_0x257b('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x257b('0x2'));var rp=require(_0x257b('0x3'));var moment=require(_0x257b('0x4'));var BPromise=require(_0x257b('0x5'));var Mustache=require(_0x257b('0x6'));var util=require(_0x257b('0x7'));var path=require(_0x257b('0x8'));var sox=require(_0x257b('0x9'));var csv=require(_0x257b('0xa'));var ejs=require(_0x257b('0xb'));var fs=require('fs');var fs_extra=require(_0x257b('0xc'));var _=require(_0x257b('0xd'));var squel=require(_0x257b('0xe'));var crypto=require(_0x257b('0xf'));var jsforce=require('jsforce');var deskjs=require(_0x257b('0x10'));var toCsv=require(_0x257b('0xa'));var querystring=require(_0x257b('0x11'));var Papa=require(_0x257b('0x12'));var Redis=require(_0x257b('0x13'));var authService=require(_0x257b('0x14'));var qs=require(_0x257b('0x15'));var as=require(_0x257b('0x16'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x257b('0x17'));var utils=require(_0x257b('0x18'));var config=require('../../config/environment');var licenseUtil=require(_0x257b('0x19'));var db=require('../../mysqldb')['db'];var extensions=require('../../components/extensions/rewrite');function respondWithStatusCode(_0x5dd7bd,_0x1be896){_0x1be896=_0x1be896||0xcc;return function(_0x515ad0){if(_0x515ad0){return _0x5dd7bd[_0x257b('0x1a')](_0x1be896);}return _0x5dd7bd[_0x257b('0x1b')](_0x1be896)['end']();};}function respondWithResult(_0x56fd60,_0x526a70){_0x526a70=_0x526a70||0xc8;return function(_0x4f0d91){if(_0x4f0d91){return _0x56fd60[_0x257b('0x1b')](_0x526a70)['json'](_0x4f0d91);}};}function respondWithFilteredResult(_0x1746c5,_0x22e75f){return function(_0x3fc258){if(_0x3fc258){var _0x5ae4d6=typeof _0x22e75f[_0x257b('0x1c')]===_0x257b('0x1d')&&typeof _0x22e75f['limit']===_0x257b('0x1d');var _0x4fe7d8=_0x3fc258[_0x257b('0x1e')];var _0x322b8c=_0x5ae4d6?0x0:_0x22e75f[_0x257b('0x1c')];var _0xabe022=_0x5ae4d6?_0x3fc258[_0x257b('0x1e')]:_0x22e75f[_0x257b('0x1c')]+_0x22e75f['limit'];var _0x50e4e4;if(_0xabe022>=_0x4fe7d8){_0xabe022=_0x4fe7d8;_0x50e4e4=0xc8;}else{_0x50e4e4=0xce;}_0x1746c5[_0x257b('0x1b')](_0x50e4e4);return _0x1746c5[_0x257b('0x1f')]('Content-Range',_0x322b8c+'-'+_0xabe022+'/'+_0x4fe7d8)[_0x257b('0x20')](_0x3fc258);}return null;};}function patchUpdates(_0x172bde){return function(_0x3601d6){try{jsonpatch[_0x257b('0x21')](_0x3601d6,_0x172bde,!![]);}catch(_0x267a60){return BPromise['reject'](_0x267a60);}return _0x3601d6[_0x257b('0x22')]();};}function saveUpdates(_0x1122ab,_0xdbffe4){return function(_0x3702ae){if(_0x3702ae){return _0x3702ae[_0x257b('0x23')](_0x1122ab)[_0x257b('0x24')](function(_0x210783){return _0x210783;});}return null;};}function removeEntity(_0x20d722,_0x5921db){return function(_0x239f32){if(_0x239f32){return _0x239f32[_0x257b('0x25')]()['then'](function(){var _0x23d3fe=_0x239f32['get']({'plain':!![]});var _0x5dc4aa=_0x257b('0x26');return db[_0x257b('0x27')]['destroy']({'where':{'type':_0x5dc4aa,'resourceId':_0x23d3fe['id']}})[_0x257b('0x24')](function(){return _0x239f32;});})[_0x257b('0x24')](function(){_0x20d722[_0x257b('0x1b')](0xcc)[_0x257b('0x28')]();});}};}function handleEntityNotFound(_0x492553,_0x15e1b9){return function(_0x32d4df){if(!_0x32d4df){_0x492553['sendStatus'](0x194);}return _0x32d4df;};}function handleError(_0x3618b5,_0x6c6a71){_0x6c6a71=_0x6c6a71||0x1f4;return function(_0x172c2a){logger[_0x257b('0x29')](_0x172c2a[_0x257b('0x2a')]);if(_0x172c2a['name']){delete _0x172c2a['name'];}_0x3618b5[_0x257b('0x1b')](_0x6c6a71)[_0x257b('0x2b')](_0x172c2a);};}exports[_0x257b('0x2c')]=function(_0x465b3a,_0x37f03c){var _0x5558af={},_0x12266={},_0x1774c8={'count':0x0,'rows':[]};var _0x5a4cce=_['map'](db['Interval'][_0x257b('0x2d')],function(_0x52db19){return{'name':_0x52db19[_0x257b('0x2e')],'type':_0x52db19[_0x257b('0x2f')][_0x257b('0x30')]};});_0x12266[_0x257b('0x31')]=_[_0x257b('0x32')](_0x5a4cce,_0x257b('0x33'));_0x12266['query']=_[_0x257b('0x34')](_0x465b3a[_0x257b('0x35')]);_0x12266[_0x257b('0x36')]=_['intersection'](_0x12266[_0x257b('0x31')],_0x12266[_0x257b('0x35')]);_0x5558af['attributes']=_[_0x257b('0x37')](_0x12266[_0x257b('0x31')],qs['fields'](_0x465b3a[_0x257b('0x35')]['fields']));_0x5558af[_0x257b('0x38')]=_0x5558af[_0x257b('0x38')][_0x257b('0x39')]?_0x5558af[_0x257b('0x38')]:_0x12266[_0x257b('0x31')];if(!_0x465b3a[_0x257b('0x35')][_0x257b('0x3a')]('nolimit')){_0x5558af['limit']=qs[_0x257b('0x3b')](_0x465b3a[_0x257b('0x35')]['limit']);_0x5558af[_0x257b('0x1c')]=qs[_0x257b('0x1c')](_0x465b3a[_0x257b('0x35')][_0x257b('0x1c')]);}_0x5558af[_0x257b('0x3c')]=qs['sort'](_0x465b3a[_0x257b('0x35')]['sort']);_0x5558af['where']=qs[_0x257b('0x36')](_[_0x257b('0x3d')](_0x465b3a[_0x257b('0x35')],_0x12266[_0x257b('0x36')]),_0x5a4cce);if(_0x465b3a[_0x257b('0x35')][_0x257b('0x3e')]){_0x5558af[_0x257b('0x3f')]=_[_0x257b('0x40')](_0x5558af[_0x257b('0x3f')],{'$or':_['map'](_0x5a4cce,function(_0x27ccbe){if(_0x27ccbe[_0x257b('0x2f')]!==_0x257b('0x41')){var _0x475f4a={};_0x475f4a[_0x27ccbe[_0x257b('0x33')]]={'$like':'%'+_0x465b3a[_0x257b('0x35')][_0x257b('0x3e')]+'%'};return _0x475f4a;}})});}_0x5558af=_[_0x257b('0x40')]({},_0x5558af,_0x465b3a['options']);var _0x11af1e={'where':_0x5558af['where']};return db[_0x257b('0x42')]['count'](_0x11af1e)[_0x257b('0x24')](function(_0x2c989d){_0x1774c8[_0x257b('0x1e')]=_0x2c989d;if(_0x465b3a[_0x257b('0x35')][_0x257b('0x43')]){_0x5558af[_0x257b('0x44')]=[{'all':!![]}];}return db['Interval'][_0x257b('0x45')](_0x5558af);})[_0x257b('0x24')](function(_0x3c7086){_0x1774c8[_0x257b('0x46')]=_0x3c7086;return _0x1774c8;})[_0x257b('0x24')](respondWithFilteredResult(_0x37f03c,_0x5558af))[_0x257b('0x47')](handleError(_0x37f03c,null));};exports[_0x257b('0x48')]=function(_0x1772a4,_0x2317ff){var _0x332763={'raw':!![],'where':{'id':_0x1772a4[_0x257b('0x49')]['id']}},_0x1ba7db={};_0x1ba7db[_0x257b('0x31')]=_[_0x257b('0x34')](db[_0x257b('0x42')][_0x257b('0x2d')]);_0x1ba7db[_0x257b('0x35')]=_[_0x257b('0x34')](_0x1772a4[_0x257b('0x35')]);_0x1ba7db[_0x257b('0x36')]=_[_0x257b('0x37')](_0x1ba7db['model'],_0x1ba7db['query']);_0x332763[_0x257b('0x38')]=_[_0x257b('0x37')](_0x1ba7db[_0x257b('0x31')],qs[_0x257b('0x4a')](_0x1772a4[_0x257b('0x35')][_0x257b('0x4a')]));_0x332763[_0x257b('0x38')]=_0x332763[_0x257b('0x38')][_0x257b('0x39')]?_0x332763[_0x257b('0x38')]:_0x1ba7db[_0x257b('0x31')];if(_0x1772a4[_0x257b('0x35')]['includeAll']){_0x332763[_0x257b('0x44')]=[{'all':!![]}];}_0x332763=_['merge']({},_0x332763,_0x1772a4[_0x257b('0x4b')]);return db[_0x257b('0x42')]['find'](_0x332763)[_0x257b('0x24')](handleEntityNotFound(_0x2317ff,null))[_0x257b('0x24')](respondWithResult(_0x2317ff,null))[_0x257b('0x47')](handleError(_0x2317ff,null));};exports[_0x257b('0x4c')]=function(_0x5f0627,_0x16e87f){return db[_0x257b('0x42')][_0x257b('0x4c')](_0x5f0627[_0x257b('0x4d')],{})['then'](function(_0x598aa8){var _0x129abc=_0x5f0627['user'][_0x257b('0x4e')]({'plain':!![]});if(!_0x129abc)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x129abc['role']==='user'){var _0x3ee831=_0x598aa8[_0x257b('0x4e')]({'plain':!![]});var _0x1bae07='Intervals';return db['UserProfileSection'][_0x257b('0x4f')]({'where':{'name':_0x1bae07,'userProfileId':_0x129abc[_0x257b('0x50')]},'raw':!![]})[_0x257b('0x24')](function(_0x4b0b79){if(_0x4b0b79&&_0x4b0b79[_0x257b('0x51')]===0x0){return db[_0x257b('0x27')]['create']({'name':_0x3ee831['name'],'resourceId':_0x3ee831['id'],'type':_0x4b0b79[_0x257b('0x33')],'sectionId':_0x4b0b79['id']},{})[_0x257b('0x24')](function(){return _0x598aa8;});}else{return _0x598aa8;}})[_0x257b('0x47')](function(_0x5939ce){logger[_0x257b('0x29')](_0x257b('0x52'),_0x5939ce);throw _0x5939ce;});}return _0x598aa8;})[_0x257b('0x24')](respondWithResult(_0x16e87f,0xc9))[_0x257b('0x47')](handleError(_0x16e87f,null));};exports[_0x257b('0x23')]=function(_0x223551,_0x583c6d){if(_0x223551['body']['id']){delete _0x223551['body']['id'];}return db[_0x257b('0x42')]['find']({'where':{'id':_0x223551['params']['id']}})[_0x257b('0x24')](handleEntityNotFound(_0x583c6d,null))['then'](saveUpdates(_0x223551[_0x257b('0x4d')],null))['then'](respondWithResult(_0x583c6d,null))[_0x257b('0x47')](handleError(_0x583c6d,null));};exports[_0x257b('0x25')]=function(_0x5197b9,_0x533a88){return db['Interval'][_0x257b('0x4f')]({'where':{'id':_0x5197b9[_0x257b('0x49')]['id']}})[_0x257b('0x24')](handleEntityNotFound(_0x533a88,null))[_0x257b('0x24')](removeEntity(_0x533a88,null))[_0x257b('0x47')](handleError(_0x533a88,null));};exports[_0x257b('0x53')]=function(_0x577ec4,_0x5aad54,_0x1a701c){if(_0x577ec4[_0x257b('0x4d')]['id']){delete _0x577ec4[_0x257b('0x4d')]['id'];}return db[_0x257b('0x42')]['find']({'where':{'id':_0x577ec4['params']['id']}})['then'](handleEntityNotFound(_0x5aad54,null))['then'](function(_0x24693b){if(_0x24693b){_0x577ec4[_0x257b('0x4d')]['IntervalId']=_0x24693b['id'];return db['Interval']['create'](_0x577ec4[_0x257b('0x4d')]);}})[_0x257b('0x24')](respondWithResult(_0x5aad54,null))['catch'](handleError(_0x5aad54,null));};exports[_0x257b('0x54')]=function(_0x324433,_0x1720c2,_0x44a877){var _0x533c41={};var _0x970931={};var _0xe735e9;var _0x46efe3;return db[_0x257b('0x42')][_0x257b('0x55')]({'where':{'id':_0x324433[_0x257b('0x49')]['id']}})['then'](handleEntityNotFound(_0x1720c2,null))[_0x257b('0x24')](function(_0x2d55b1){if(_0x2d55b1){_0xe735e9=_0x2d55b1;_0x970931[_0x257b('0x31')]=_[_0x257b('0x34')](db['Interval'][_0x257b('0x2d')]);_0x970931[_0x257b('0x35')]=_['keys'](_0x324433['query']);_0x970931['filters']=_[_0x257b('0x37')](_0x970931['model'],_0x970931[_0x257b('0x35')]);_0x533c41[_0x257b('0x38')]=_[_0x257b('0x37')](_0x970931[_0x257b('0x31')],qs['fields'](_0x324433['query'][_0x257b('0x4a')]));_0x533c41[_0x257b('0x38')]=_0x533c41['attributes'][_0x257b('0x39')]?_0x533c41[_0x257b('0x38')]:_0x970931['model'];_0x533c41[_0x257b('0x3c')]=qs[_0x257b('0x56')](_0x324433[_0x257b('0x35')][_0x257b('0x56')]);_0x533c41[_0x257b('0x3f')]=qs[_0x257b('0x36')](_[_0x257b('0x3d')](_0x324433['query'],_0x970931['filters']));if(_0x324433[_0x257b('0x35')][_0x257b('0x3e')]){_0x533c41[_0x257b('0x3f')]=_['merge'](_0x533c41['where'],{'$or':_[_0x257b('0x32')](_0x533c41[_0x257b('0x38')],function(_0x556ca7){var _0x585e6d={};_0x585e6d[_0x556ca7]={'$like':'%'+_0x324433[_0x257b('0x35')][_0x257b('0x3e')]+'%'};return _0x585e6d;})});}_0x533c41=_['merge']({},_0x533c41,_0x324433['options']);return _0xe735e9[_0x257b('0x54')](_0x533c41);}})[_0x257b('0x24')](function(_0xf61915){if(_0xf61915){_0x46efe3=_0xf61915[_0x257b('0x39')];if(!_0x324433[_0x257b('0x35')]['hasOwnProperty'](_0x257b('0x57'))){_0x533c41[_0x257b('0x3b')]=qs[_0x257b('0x3b')](_0x324433[_0x257b('0x35')]['limit']);_0x533c41[_0x257b('0x1c')]=qs[_0x257b('0x1c')](_0x324433['query'][_0x257b('0x1c')]);}return _0xe735e9[_0x257b('0x54')](_0x533c41);}})['then'](function(_0x54bc25){if(_0x54bc25){return _0x54bc25?{'count':_0x46efe3,'rows':_0x54bc25}:null;}})[_0x257b('0x24')](respondWithResult(_0x1720c2,null))[_0x257b('0x47')](handleError(_0x1720c2,null));};exports['addIntervals']=function(_0x3851cf,_0x43ebb3,_0x53461d){return db[_0x257b('0x42')][_0x257b('0x55')]({'where':{'id':_0x3851cf[_0x257b('0x49')]['id']}})['then'](handleEntityNotFound(_0x43ebb3,null))[_0x257b('0x24')](function(_0x24604c){if(_0x24604c){return db[_0x257b('0x58')][_0x257b('0x59')](function(_0x5ba3e9){return db[_0x257b('0x42')][_0x257b('0x25')]({'where':{'IntervalId':_0x3851cf[_0x257b('0x49')]['id']},'transaction':_0x5ba3e9})['then'](function(_0x51b06f){var _0x21f658=_['map'](_0x3851cf[_0x257b('0x4d')],function(_0x15801c){delete _0x15801c['id'];_0x15801c['IntervalId']=_0x3851cf[_0x257b('0x49')]['id'];return _0x15801c;});return db['Interval'][_0x257b('0x5a')](_0x21f658,{'transaction':_0x5ba3e9});});})[_0x257b('0x24')](function(){return db[_0x257b('0x42')][_0x257b('0x45')]({'where':{'IntervalId':_0x3851cf[_0x257b('0x49')]['id']}});});}})[_0x257b('0x24')](respondWithResult(_0x43ebb3,null))[_0x257b('0x47')](handleError(_0x43ebb3,null));};