803668ee4b16e2d2807a03edf34b9408ea70de54
[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 _0x9b24=['end','offset','undefined','limit','count','set','Content-Range','json','save','update','then','destroy','get','UserProfileResource','stack','name','send','rawAttributes','fieldName','type','key','model','map','query','keys','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','filters','pick','merge','VIRTUAL','filter','options','Interval','include','findAll','rows','catch','show','create','body','user','role','Intervals','UserProfileSection','find','userProfileId','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','addInterval','IntervalId','getIntervals','findOne','order','addIntervals','sequelize','transaction','bulkCreate','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/extensions/rewrite','status'];(function(_0x348652,_0x1ab849){var _0x18a9ea=function(_0x3fd540){while(--_0x3fd540){_0x348652['push'](_0x348652['shift']());}};_0x18a9ea(++_0x1ab849);}(_0x9b24,0x15f));var _0x49b2=function(_0x223657,_0x1b1dae){_0x223657=_0x223657-0x0;var _0x8abc33=_0x9b24[_0x223657];return _0x8abc33;};'use strict';var emlformat=require(_0x49b2('0x0'));var rimraf=require(_0x49b2('0x1'));var zipdir=require(_0x49b2('0x2'));var jsonpatch=require(_0x49b2('0x3'));var rp=require(_0x49b2('0x4'));var moment=require(_0x49b2('0x5'));var BPromise=require(_0x49b2('0x6'));var Mustache=require(_0x49b2('0x7'));var util=require('util');var path=require(_0x49b2('0x8'));var sox=require(_0x49b2('0x9'));var csv=require(_0x49b2('0xa'));var ejs=require(_0x49b2('0xb'));var fs=require('fs');var fs_extra=require(_0x49b2('0xc'));var _=require('lodash');var squel=require('squel');var crypto=require(_0x49b2('0xd'));var jsforce=require(_0x49b2('0xe'));var deskjs=require(_0x49b2('0xf'));var toCsv=require(_0x49b2('0xa'));var querystring=require(_0x49b2('0x10'));var Papa=require(_0x49b2('0x11'));var Redis=require(_0x49b2('0x12'));var authService=require('../../components/auth/service');var qs=require(_0x49b2('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x49b2('0x14'));var logger=require(_0x49b2('0x15'))(_0x49b2('0x16'));var utils=require(_0x49b2('0x17'));var config=require(_0x49b2('0x18'));var licenseUtil=require(_0x49b2('0x19'));var db=require(_0x49b2('0x1a'))['db'];var extensions=require(_0x49b2('0x1b'));function respondWithStatusCode(_0x26d4fd,_0x12b62c){_0x12b62c=_0x12b62c||0xcc;return function(_0x14810a){if(_0x14810a){return _0x26d4fd['sendStatus'](_0x12b62c);}return _0x26d4fd[_0x49b2('0x1c')](_0x12b62c)[_0x49b2('0x1d')]();};}function respondWithResult(_0x3c16d3,_0x2a911d){_0x2a911d=_0x2a911d||0xc8;return function(_0x71af7){if(_0x71af7){return _0x3c16d3[_0x49b2('0x1c')](_0x2a911d)['json'](_0x71af7);}};}function respondWithFilteredResult(_0x4f7db7,_0x38f6be){return function(_0x3b5aca){if(_0x3b5aca){var _0x430645=typeof _0x38f6be[_0x49b2('0x1e')]===_0x49b2('0x1f')&&typeof _0x38f6be[_0x49b2('0x20')]===_0x49b2('0x1f');var _0x522fde=_0x3b5aca[_0x49b2('0x21')];var _0x17c416=_0x430645?0x0:_0x38f6be['offset'];var _0x2d7dfe=_0x430645?_0x3b5aca['count']:_0x38f6be['offset']+_0x38f6be[_0x49b2('0x20')];var _0x35a86a;if(_0x2d7dfe>=_0x522fde){_0x2d7dfe=_0x522fde;_0x35a86a=0xc8;}else{_0x35a86a=0xce;}_0x4f7db7['status'](_0x35a86a);return _0x4f7db7[_0x49b2('0x22')](_0x49b2('0x23'),_0x17c416+'-'+_0x2d7dfe+'/'+_0x522fde)[_0x49b2('0x24')](_0x3b5aca);}return null;};}function patchUpdates(_0x25637a){return function(_0x169b9e){try{jsonpatch['apply'](_0x169b9e,_0x25637a,!![]);}catch(_0x1c8d23){return BPromise['reject'](_0x1c8d23);}return _0x169b9e[_0x49b2('0x25')]();};}function saveUpdates(_0x5beac1,_0x132fe3){return function(_0x4adc2c){if(_0x4adc2c){return _0x4adc2c[_0x49b2('0x26')](_0x5beac1)[_0x49b2('0x27')](function(_0x233ff5){return _0x233ff5;});}return null;};}function removeEntity(_0x5e81cc,_0x2d26dd){return function(_0x255320){if(_0x255320){return _0x255320[_0x49b2('0x28')]()[_0x49b2('0x27')](function(){var _0x25c1d2=_0x255320[_0x49b2('0x29')]({'plain':!![]});var _0x2f87ec='Intervals';return db[_0x49b2('0x2a')][_0x49b2('0x28')]({'where':{'type':_0x2f87ec,'resourceId':_0x25c1d2['id']}})[_0x49b2('0x27')](function(){return _0x255320;});})[_0x49b2('0x27')](function(){_0x5e81cc[_0x49b2('0x1c')](0xcc)[_0x49b2('0x1d')]();});}};}function handleEntityNotFound(_0x44f7d0,_0x2a5b6){return function(_0x2360d4){if(!_0x2360d4){_0x44f7d0['sendStatus'](0x194);}return _0x2360d4;};}function handleError(_0x3d383b,_0x184b0c){_0x184b0c=_0x184b0c||0x1f4;return function(_0x3f0011){logger['error'](_0x3f0011[_0x49b2('0x2b')]);if(_0x3f0011[_0x49b2('0x2c')]){delete _0x3f0011[_0x49b2('0x2c')];}_0x3d383b['status'](_0x184b0c)[_0x49b2('0x2d')](_0x3f0011);};}exports['index']=function(_0x1e665f,_0x366ca6){var _0x5d6da0={},_0x1129d2={},_0x228d6b={'count':0x0,'rows':[]};var _0x539a37=_['map'](db['Interval'][_0x49b2('0x2e')],function(_0x453aab){return{'name':_0x453aab[_0x49b2('0x2f')],'type':_0x453aab[_0x49b2('0x30')][_0x49b2('0x31')]};});_0x1129d2[_0x49b2('0x32')]=_[_0x49b2('0x33')](_0x539a37,_0x49b2('0x2c'));_0x1129d2[_0x49b2('0x34')]=_[_0x49b2('0x35')](_0x1e665f['query']);_0x1129d2['filters']=_[_0x49b2('0x36')](_0x1129d2[_0x49b2('0x32')],_0x1129d2[_0x49b2('0x34')]);_0x5d6da0[_0x49b2('0x37')]=_['intersection'](_0x1129d2[_0x49b2('0x32')],qs['fields'](_0x1e665f['query'][_0x49b2('0x38')]));_0x5d6da0['attributes']=_0x5d6da0['attributes'][_0x49b2('0x39')]?_0x5d6da0[_0x49b2('0x37')]:_0x1129d2[_0x49b2('0x32')];if(!_0x1e665f[_0x49b2('0x34')][_0x49b2('0x3a')](_0x49b2('0x3b'))){_0x5d6da0[_0x49b2('0x20')]=qs[_0x49b2('0x20')](_0x1e665f[_0x49b2('0x34')]['limit']);_0x5d6da0[_0x49b2('0x1e')]=qs['offset'](_0x1e665f[_0x49b2('0x34')][_0x49b2('0x1e')]);}_0x5d6da0['order']=qs[_0x49b2('0x3c')](_0x1e665f[_0x49b2('0x34')][_0x49b2('0x3c')]);_0x5d6da0[_0x49b2('0x3d')]=qs[_0x49b2('0x3e')](_[_0x49b2('0x3f')](_0x1e665f[_0x49b2('0x34')],_0x1129d2[_0x49b2('0x3e')]),_0x539a37);if(_0x1e665f[_0x49b2('0x34')]['filter']){_0x5d6da0['where']=_[_0x49b2('0x40')](_0x5d6da0[_0x49b2('0x3d')],{'$or':_[_0x49b2('0x33')](_0x539a37,function(_0x5c42bb){if(_0x5c42bb[_0x49b2('0x30')]!==_0x49b2('0x41')){var _0x23a22b={};_0x23a22b[_0x5c42bb[_0x49b2('0x2c')]]={'$like':'%'+_0x1e665f['query'][_0x49b2('0x42')]+'%'};return _0x23a22b;}})});}_0x5d6da0=_['merge']({},_0x5d6da0,_0x1e665f[_0x49b2('0x43')]);var _0x8ec496={'where':_0x5d6da0[_0x49b2('0x3d')]};return db[_0x49b2('0x44')][_0x49b2('0x21')](_0x8ec496)[_0x49b2('0x27')](function(_0x5c424d){_0x228d6b['count']=_0x5c424d;if(_0x1e665f['query']['includeAll']){_0x5d6da0[_0x49b2('0x45')]=[{'all':!![]}];}return db[_0x49b2('0x44')][_0x49b2('0x46')](_0x5d6da0);})[_0x49b2('0x27')](function(_0x1f567e){_0x228d6b[_0x49b2('0x47')]=_0x1f567e;return _0x228d6b;})[_0x49b2('0x27')](respondWithFilteredResult(_0x366ca6,_0x5d6da0))[_0x49b2('0x48')](handleError(_0x366ca6,null));};exports[_0x49b2('0x49')]=function(_0x31163c,_0x21a980){var _0x2e1322={'raw':!![],'where':{'id':_0x31163c['params']['id']}},_0x2422bb={};_0x2422bb[_0x49b2('0x32')]=_['keys'](db['Interval'][_0x49b2('0x2e')]);_0x2422bb[_0x49b2('0x34')]=_[_0x49b2('0x35')](_0x31163c[_0x49b2('0x34')]);_0x2422bb[_0x49b2('0x3e')]=_['intersection'](_0x2422bb[_0x49b2('0x32')],_0x2422bb[_0x49b2('0x34')]);_0x2e1322[_0x49b2('0x37')]=_[_0x49b2('0x36')](_0x2422bb[_0x49b2('0x32')],qs[_0x49b2('0x38')](_0x31163c['query'][_0x49b2('0x38')]));_0x2e1322[_0x49b2('0x37')]=_0x2e1322['attributes'][_0x49b2('0x39')]?_0x2e1322[_0x49b2('0x37')]:_0x2422bb[_0x49b2('0x32')];if(_0x31163c[_0x49b2('0x34')]['includeAll']){_0x2e1322['include']=[{'all':!![]}];}_0x2e1322=_[_0x49b2('0x40')]({},_0x2e1322,_0x31163c[_0x49b2('0x43')]);return db[_0x49b2('0x44')]['find'](_0x2e1322)[_0x49b2('0x27')](handleEntityNotFound(_0x21a980,null))[_0x49b2('0x27')](respondWithResult(_0x21a980,null))[_0x49b2('0x48')](handleError(_0x21a980,null));};exports['create']=function(_0x14a5c9,_0x18384c){return db[_0x49b2('0x44')][_0x49b2('0x4a')](_0x14a5c9[_0x49b2('0x4b')],{})[_0x49b2('0x27')](function(_0x3299d1){var _0x29beeb=_0x14a5c9[_0x49b2('0x4c')][_0x49b2('0x29')]({'plain':!![]});if(!_0x29beeb)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x29beeb[_0x49b2('0x4d')]===_0x49b2('0x4c')){var _0x5ad27d=_0x3299d1[_0x49b2('0x29')]({'plain':!![]});var _0x1e7ee6=_0x49b2('0x4e');return db[_0x49b2('0x4f')][_0x49b2('0x50')]({'where':{'name':_0x1e7ee6,'userProfileId':_0x29beeb[_0x49b2('0x51')]},'raw':!![]})[_0x49b2('0x27')](function(_0x25b29e){if(_0x25b29e&&_0x25b29e[_0x49b2('0x52')]===0x0){return db[_0x49b2('0x2a')][_0x49b2('0x4a')]({'name':_0x5ad27d[_0x49b2('0x2c')],'resourceId':_0x5ad27d['id'],'type':_0x25b29e[_0x49b2('0x2c')],'sectionId':_0x25b29e['id']},{})[_0x49b2('0x27')](function(){return _0x3299d1;});}else{return _0x3299d1;}})[_0x49b2('0x48')](function(_0x20381a){logger[_0x49b2('0x53')](_0x49b2('0x54'),_0x20381a);throw _0x20381a;});}return _0x3299d1;})[_0x49b2('0x27')](respondWithResult(_0x18384c,0xc9))[_0x49b2('0x48')](handleError(_0x18384c,null));};exports[_0x49b2('0x26')]=function(_0x24061b,_0x169b87){if(_0x24061b['body']['id']){delete _0x24061b[_0x49b2('0x4b')]['id'];}return db[_0x49b2('0x44')]['find']({'where':{'id':_0x24061b['params']['id']}})[_0x49b2('0x27')](handleEntityNotFound(_0x169b87,null))[_0x49b2('0x27')](saveUpdates(_0x24061b[_0x49b2('0x4b')],null))['then'](respondWithResult(_0x169b87,null))[_0x49b2('0x48')](handleError(_0x169b87,null));};exports['destroy']=function(_0x83ef67,_0x546faf){return db[_0x49b2('0x44')][_0x49b2('0x50')]({'where':{'id':_0x83ef67[_0x49b2('0x55')]['id']}})[_0x49b2('0x27')](handleEntityNotFound(_0x546faf,null))[_0x49b2('0x27')](removeEntity(_0x546faf,null))[_0x49b2('0x48')](handleError(_0x546faf,null));};exports[_0x49b2('0x56')]=function(_0x32736a,_0x41a511,_0x58cfbb){if(_0x32736a['body']['id']){delete _0x32736a['body']['id'];}return db[_0x49b2('0x44')][_0x49b2('0x50')]({'where':{'id':_0x32736a[_0x49b2('0x55')]['id']}})[_0x49b2('0x27')](handleEntityNotFound(_0x41a511,null))[_0x49b2('0x27')](function(_0x3570e0){if(_0x3570e0){_0x32736a[_0x49b2('0x4b')][_0x49b2('0x57')]=_0x3570e0['id'];return db['Interval']['create'](_0x32736a[_0x49b2('0x4b')]);}})[_0x49b2('0x27')](respondWithResult(_0x41a511,null))['catch'](handleError(_0x41a511,null));};exports[_0x49b2('0x58')]=function(_0x69ae7e,_0x56520a,_0x1b53b7){var _0x3f9d9c={};var _0x1103fe={};var _0x5179f4;var _0x20209a;return db[_0x49b2('0x44')][_0x49b2('0x59')]({'where':{'id':_0x69ae7e[_0x49b2('0x55')]['id']}})[_0x49b2('0x27')](handleEntityNotFound(_0x56520a,null))['then'](function(_0x5c5105){if(_0x5c5105){_0x5179f4=_0x5c5105;_0x1103fe['model']=_[_0x49b2('0x35')](db['Interval'][_0x49b2('0x2e')]);_0x1103fe['query']=_[_0x49b2('0x35')](_0x69ae7e['query']);_0x1103fe[_0x49b2('0x3e')]=_['intersection'](_0x1103fe['model'],_0x1103fe['query']);_0x3f9d9c[_0x49b2('0x37')]=_[_0x49b2('0x36')](_0x1103fe[_0x49b2('0x32')],qs[_0x49b2('0x38')](_0x69ae7e[_0x49b2('0x34')][_0x49b2('0x38')]));_0x3f9d9c[_0x49b2('0x37')]=_0x3f9d9c['attributes']['length']?_0x3f9d9c[_0x49b2('0x37')]:_0x1103fe['model'];_0x3f9d9c[_0x49b2('0x5a')]=qs['sort'](_0x69ae7e['query']['sort']);_0x3f9d9c[_0x49b2('0x3d')]=qs[_0x49b2('0x3e')](_['pick'](_0x69ae7e['query'],_0x1103fe[_0x49b2('0x3e')]));if(_0x69ae7e[_0x49b2('0x34')][_0x49b2('0x42')]){_0x3f9d9c[_0x49b2('0x3d')]=_['merge'](_0x3f9d9c[_0x49b2('0x3d')],{'$or':_[_0x49b2('0x33')](_0x3f9d9c[_0x49b2('0x37')],function(_0x1d6310){var _0x5cbaf4={};_0x5cbaf4[_0x1d6310]={'$like':'%'+_0x69ae7e[_0x49b2('0x34')][_0x49b2('0x42')]+'%'};return _0x5cbaf4;})});}_0x3f9d9c=_[_0x49b2('0x40')]({},_0x3f9d9c,_0x69ae7e['options']);return _0x5179f4['getIntervals'](_0x3f9d9c);}})[_0x49b2('0x27')](function(_0x37f43f){if(_0x37f43f){_0x20209a=_0x37f43f[_0x49b2('0x39')];if(!_0x69ae7e[_0x49b2('0x34')]['hasOwnProperty'](_0x49b2('0x3b'))){_0x3f9d9c[_0x49b2('0x20')]=qs['limit'](_0x69ae7e[_0x49b2('0x34')]['limit']);_0x3f9d9c[_0x49b2('0x1e')]=qs['offset'](_0x69ae7e[_0x49b2('0x34')]['offset']);}return _0x5179f4['getIntervals'](_0x3f9d9c);}})['then'](function(_0x34f310){if(_0x34f310){return _0x34f310?{'count':_0x20209a,'rows':_0x34f310}:null;}})[_0x49b2('0x27')](respondWithResult(_0x56520a,null))[_0x49b2('0x48')](handleError(_0x56520a,null));};exports[_0x49b2('0x5b')]=function(_0x3b6539,_0x484de0,_0x48e3e7){return db[_0x49b2('0x44')][_0x49b2('0x59')]({'where':{'id':_0x3b6539['params']['id']}})['then'](handleEntityNotFound(_0x484de0,null))[_0x49b2('0x27')](function(_0x3893ed){if(_0x3893ed){return db[_0x49b2('0x5c')][_0x49b2('0x5d')](function(_0x22f5f9){return db[_0x49b2('0x44')][_0x49b2('0x28')]({'where':{'IntervalId':_0x3b6539[_0x49b2('0x55')]['id']},'transaction':_0x22f5f9})[_0x49b2('0x27')](function(_0x3b293a){var _0x698d89=_[_0x49b2('0x33')](_0x3b6539[_0x49b2('0x4b')],function(_0x249a97){delete _0x249a97['id'];_0x249a97[_0x49b2('0x57')]=_0x3b6539[_0x49b2('0x55')]['id'];return _0x249a97;});return db[_0x49b2('0x44')][_0x49b2('0x5e')](_0x698d89,{'transaction':_0x22f5f9});});})['then'](function(){return db['Interval'][_0x49b2('0x46')]({'where':{'IntervalId':_0x3b6539[_0x49b2('0x55')]['id']}});});}})[_0x49b2('0x27')](respondWithResult(_0x484de0,null))['catch'](handleError(_0x484de0,null));};