9080f232add2fa8ccdc4647f1ac7e415b8ecb5d1
[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 _0x4c45=['create','body','user','role','UserProfileSection','find','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','addInterval','IntervalId','getIntervals','order','addIntervals','findOne','transaction','bulkCreate','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','path','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','../../components/extensions/rewrite','sendStatus','end','status','offset','undefined','count','limit','Content-Range','json','reject','save','then','get','Intervals','UserProfileResource','destroy','error','name','send','index','map','Interval','rawAttributes','type','filters','intersection','attributes','model','fields','query','length','hasOwnProperty','nolimit','sort','where','pick','filter','merge','VIRTUAL','options','findAll','rows','show','params','keys','includeAll','catch'];(function(_0xe55a3a,_0x187f99){var _0x3fe188=function(_0x4e2498){while(--_0x4e2498){_0xe55a3a['push'](_0xe55a3a['shift']());}};_0x3fe188(++_0x187f99);}(_0x4c45,0xc7));var _0x54c4=function(_0x10608c,_0x41480b){_0x10608c=_0x10608c-0x0;var _0x45c488=_0x4c45[_0x10608c];return _0x45c488;};'use strict';var emlformat=require(_0x54c4('0x0'));var rimraf=require(_0x54c4('0x1'));var zipdir=require(_0x54c4('0x2'));var jsonpatch=require(_0x54c4('0x3'));var rp=require(_0x54c4('0x4'));var moment=require(_0x54c4('0x5'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require('util');var path=require(_0x54c4('0x6'));var sox=require(_0x54c4('0x7'));var csv=require('to-csv');var ejs=require(_0x54c4('0x8'));var fs=require('fs');var fs_extra=require(_0x54c4('0x9'));var _=require(_0x54c4('0xa'));var squel=require(_0x54c4('0xb'));var crypto=require(_0x54c4('0xc'));var jsforce=require(_0x54c4('0xd'));var deskjs=require(_0x54c4('0xe'));var toCsv=require(_0x54c4('0xf'));var querystring=require(_0x54c4('0x10'));var Papa=require(_0x54c4('0x11'));var Redis=require(_0x54c4('0x12'));var authService=require(_0x54c4('0x13'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x54c4('0x14'));var logger=require(_0x54c4('0x15'))(_0x54c4('0x16'));var utils=require(_0x54c4('0x17'));var config=require(_0x54c4('0x18'));var licenseUtil=require('../../config/license/util');var db=require(_0x54c4('0x19'))['db'];var extensions=require(_0x54c4('0x1a'));function respondWithStatusCode(_0x268da5,_0x5b0c33){_0x5b0c33=_0x5b0c33||0xcc;return function(_0x5cd83c){if(_0x5cd83c){return _0x268da5[_0x54c4('0x1b')](_0x5b0c33);}return _0x268da5['status'](_0x5b0c33)[_0x54c4('0x1c')]();};}function respondWithResult(_0x2e5ac3,_0x1eb279){_0x1eb279=_0x1eb279||0xc8;return function(_0x5409cf){if(_0x5409cf){return _0x2e5ac3[_0x54c4('0x1d')](_0x1eb279)['json'](_0x5409cf);}};}function respondWithFilteredResult(_0x5ecb2f,_0x294f23){return function(_0x47e631){if(_0x47e631){var _0x72a0a9=typeof _0x294f23[_0x54c4('0x1e')]===_0x54c4('0x1f')&&typeof _0x294f23['limit']===_0x54c4('0x1f');var _0x4c78a5=_0x47e631[_0x54c4('0x20')];var _0x34ee00=_0x72a0a9?0x0:_0x294f23[_0x54c4('0x1e')];var _0x1d74a5=_0x72a0a9?_0x47e631[_0x54c4('0x20')]:_0x294f23[_0x54c4('0x1e')]+_0x294f23[_0x54c4('0x21')];var _0x1955a1;if(_0x1d74a5>=_0x4c78a5){_0x1d74a5=_0x4c78a5;_0x1955a1=0xc8;}else{_0x1955a1=0xce;}_0x5ecb2f[_0x54c4('0x1d')](_0x1955a1);return _0x5ecb2f['set'](_0x54c4('0x22'),_0x34ee00+'-'+_0x1d74a5+'/'+_0x4c78a5)[_0x54c4('0x23')](_0x47e631);}return null;};}function patchUpdates(_0x5b8dad){return function(_0x3415bb){try{jsonpatch['apply'](_0x3415bb,_0x5b8dad,!![]);}catch(_0x3fcbc7){return BPromise[_0x54c4('0x24')](_0x3fcbc7);}return _0x3415bb[_0x54c4('0x25')]();};}function saveUpdates(_0xd48a81,_0x22d20b){return function(_0x7da24a){if(_0x7da24a){return _0x7da24a['update'](_0xd48a81)[_0x54c4('0x26')](function(_0x54751e){return _0x54751e;});}return null;};}function removeEntity(_0x51740a,_0x347abf){return function(_0x4ffa3f){if(_0x4ffa3f){return _0x4ffa3f['destroy']()[_0x54c4('0x26')](function(){var _0x467d01=_0x4ffa3f[_0x54c4('0x27')]({'plain':!![]});var _0x322c7f=_0x54c4('0x28');return db[_0x54c4('0x29')][_0x54c4('0x2a')]({'where':{'type':_0x322c7f,'resourceId':_0x467d01['id']}})[_0x54c4('0x26')](function(){return _0x4ffa3f;});})[_0x54c4('0x26')](function(){_0x51740a[_0x54c4('0x1d')](0xcc)['end']();});}};}function handleEntityNotFound(_0x12a122,_0x79eb35){return function(_0x29ff4e){if(!_0x29ff4e){_0x12a122[_0x54c4('0x1b')](0x194);}return _0x29ff4e;};}function handleError(_0x4cc0c7,_0x417535){_0x417535=_0x417535||0x1f4;return function(_0x46aec1){logger[_0x54c4('0x2b')](_0x46aec1['stack']);if(_0x46aec1['name']){delete _0x46aec1[_0x54c4('0x2c')];}_0x4cc0c7[_0x54c4('0x1d')](_0x417535)[_0x54c4('0x2d')](_0x46aec1);};}exports[_0x54c4('0x2e')]=function(_0x25348d,_0xdf03c){var _0x2a6a92={},_0xff0608={},_0x208054={'count':0x0,'rows':[]};var _0x220530=_[_0x54c4('0x2f')](db[_0x54c4('0x30')][_0x54c4('0x31')],function(_0x1f24ce){return{'name':_0x1f24ce['fieldName'],'type':_0x1f24ce[_0x54c4('0x32')]['key']};});_0xff0608['model']=_['map'](_0x220530,_0x54c4('0x2c'));_0xff0608['query']=_['keys'](_0x25348d['query']);_0xff0608[_0x54c4('0x33')]=_[_0x54c4('0x34')](_0xff0608['model'],_0xff0608['query']);_0x2a6a92[_0x54c4('0x35')]=_[_0x54c4('0x34')](_0xff0608[_0x54c4('0x36')],qs[_0x54c4('0x37')](_0x25348d[_0x54c4('0x38')][_0x54c4('0x37')]));_0x2a6a92[_0x54c4('0x35')]=_0x2a6a92[_0x54c4('0x35')][_0x54c4('0x39')]?_0x2a6a92[_0x54c4('0x35')]:_0xff0608[_0x54c4('0x36')];if(!_0x25348d[_0x54c4('0x38')][_0x54c4('0x3a')](_0x54c4('0x3b'))){_0x2a6a92['limit']=qs[_0x54c4('0x21')](_0x25348d['query']['limit']);_0x2a6a92[_0x54c4('0x1e')]=qs['offset'](_0x25348d[_0x54c4('0x38')][_0x54c4('0x1e')]);}_0x2a6a92['order']=qs[_0x54c4('0x3c')](_0x25348d['query'][_0x54c4('0x3c')]);_0x2a6a92[_0x54c4('0x3d')]=qs['filters'](_[_0x54c4('0x3e')](_0x25348d[_0x54c4('0x38')],_0xff0608[_0x54c4('0x33')]),_0x220530);if(_0x25348d[_0x54c4('0x38')][_0x54c4('0x3f')]){_0x2a6a92[_0x54c4('0x3d')]=_[_0x54c4('0x40')](_0x2a6a92[_0x54c4('0x3d')],{'$or':_[_0x54c4('0x2f')](_0x220530,function(_0x1bec37){if(_0x1bec37[_0x54c4('0x32')]!==_0x54c4('0x41')){var _0x404a87={};_0x404a87[_0x1bec37[_0x54c4('0x2c')]]={'$like':'%'+_0x25348d['query'][_0x54c4('0x3f')]+'%'};return _0x404a87;}})});}_0x2a6a92=_[_0x54c4('0x40')]({},_0x2a6a92,_0x25348d[_0x54c4('0x42')]);var _0x413e74={'where':_0x2a6a92[_0x54c4('0x3d')]};return db['Interval'][_0x54c4('0x20')](_0x413e74)[_0x54c4('0x26')](function(_0x1b46b7){_0x208054[_0x54c4('0x20')]=_0x1b46b7;if(_0x25348d['query']['includeAll']){_0x2a6a92['include']=[{'all':!![]}];}return db[_0x54c4('0x30')][_0x54c4('0x43')](_0x2a6a92);})[_0x54c4('0x26')](function(_0x3c1e55){_0x208054[_0x54c4('0x44')]=_0x3c1e55;return _0x208054;})['then'](respondWithFilteredResult(_0xdf03c,_0x2a6a92))['catch'](handleError(_0xdf03c,null));};exports[_0x54c4('0x45')]=function(_0x582543,_0x120793){var _0x2b6685={'raw':!![],'where':{'id':_0x582543[_0x54c4('0x46')]['id']}},_0x21a155={};_0x21a155[_0x54c4('0x36')]=_[_0x54c4('0x47')](db[_0x54c4('0x30')][_0x54c4('0x31')]);_0x21a155[_0x54c4('0x38')]=_[_0x54c4('0x47')](_0x582543['query']);_0x21a155[_0x54c4('0x33')]=_[_0x54c4('0x34')](_0x21a155['model'],_0x21a155[_0x54c4('0x38')]);_0x2b6685[_0x54c4('0x35')]=_['intersection'](_0x21a155[_0x54c4('0x36')],qs[_0x54c4('0x37')](_0x582543['query'][_0x54c4('0x37')]));_0x2b6685[_0x54c4('0x35')]=_0x2b6685['attributes'][_0x54c4('0x39')]?_0x2b6685[_0x54c4('0x35')]:_0x21a155[_0x54c4('0x36')];if(_0x582543[_0x54c4('0x38')][_0x54c4('0x48')]){_0x2b6685['include']=[{'all':!![]}];}_0x2b6685=_['merge']({},_0x2b6685,_0x582543[_0x54c4('0x42')]);return db[_0x54c4('0x30')]['find'](_0x2b6685)[_0x54c4('0x26')](handleEntityNotFound(_0x120793,null))['then'](respondWithResult(_0x120793,null))[_0x54c4('0x49')](handleError(_0x120793,null));};exports[_0x54c4('0x4a')]=function(_0x1204d3,_0x36e15b){return db[_0x54c4('0x30')][_0x54c4('0x4a')](_0x1204d3[_0x54c4('0x4b')],{})[_0x54c4('0x26')](function(_0x3ec550){var _0x29536d=_0x1204d3[_0x54c4('0x4c')][_0x54c4('0x27')]({'plain':!![]});if(!_0x29536d)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x29536d[_0x54c4('0x4d')]==='user'){var _0x5c9848=_0x3ec550['get']({'plain':!![]});var _0x1a233a=_0x54c4('0x28');return db[_0x54c4('0x4e')][_0x54c4('0x4f')]({'where':{'name':_0x1a233a,'userProfileId':_0x29536d['userProfileId']},'raw':!![]})[_0x54c4('0x26')](function(_0xf5bd81){if(_0xf5bd81&&_0xf5bd81[_0x54c4('0x50')]===0x0){return db['UserProfileResource'][_0x54c4('0x4a')]({'name':_0x5c9848[_0x54c4('0x2c')],'resourceId':_0x5c9848['id'],'type':_0xf5bd81['name'],'sectionId':_0xf5bd81['id']},{})[_0x54c4('0x26')](function(){return _0x3ec550;});}else{return _0x3ec550;}})[_0x54c4('0x49')](function(_0x3e5973){logger[_0x54c4('0x2b')](_0x54c4('0x51'),_0x3e5973);throw _0x3e5973;});}return _0x3ec550;})[_0x54c4('0x26')](respondWithResult(_0x36e15b,0xc9))[_0x54c4('0x49')](handleError(_0x36e15b,null));};exports[_0x54c4('0x52')]=function(_0x56254b,_0x312540){if(_0x56254b['body']['id']){delete _0x56254b['body']['id'];}return db[_0x54c4('0x30')]['find']({'where':{'id':_0x56254b[_0x54c4('0x46')]['id']}})['then'](handleEntityNotFound(_0x312540,null))[_0x54c4('0x26')](saveUpdates(_0x56254b[_0x54c4('0x4b')],null))[_0x54c4('0x26')](respondWithResult(_0x312540,null))[_0x54c4('0x49')](handleError(_0x312540,null));};exports[_0x54c4('0x2a')]=function(_0x6c294b,_0x346276){return db['Interval'][_0x54c4('0x4f')]({'where':{'id':_0x6c294b['params']['id']}})[_0x54c4('0x26')](handleEntityNotFound(_0x346276,null))[_0x54c4('0x26')](removeEntity(_0x346276,null))[_0x54c4('0x49')](handleError(_0x346276,null));};exports[_0x54c4('0x53')]=function(_0x401ae8,_0x2b2807,_0x55c19e){if(_0x401ae8[_0x54c4('0x4b')]['id']){delete _0x401ae8[_0x54c4('0x4b')]['id'];}return db[_0x54c4('0x30')][_0x54c4('0x4f')]({'where':{'id':_0x401ae8['params']['id']}})[_0x54c4('0x26')](handleEntityNotFound(_0x2b2807,null))[_0x54c4('0x26')](function(_0x1d6306){if(_0x1d6306){_0x401ae8[_0x54c4('0x4b')][_0x54c4('0x54')]=_0x1d6306['id'];return db[_0x54c4('0x30')]['create'](_0x401ae8[_0x54c4('0x4b')]);}})['then'](respondWithResult(_0x2b2807,null))[_0x54c4('0x49')](handleError(_0x2b2807,null));};exports[_0x54c4('0x55')]=function(_0x40c77e,_0x2ba535,_0x31bd31){var _0x2981db={};var _0x421e31={};var _0x563ebc;var _0x4fa7d2;return db['Interval']['findOne']({'where':{'id':_0x40c77e[_0x54c4('0x46')]['id']}})['then'](handleEntityNotFound(_0x2ba535,null))['then'](function(_0x382024){if(_0x382024){_0x563ebc=_0x382024;_0x421e31[_0x54c4('0x36')]=_['keys'](db[_0x54c4('0x30')]['rawAttributes']);_0x421e31['query']=_[_0x54c4('0x47')](_0x40c77e['query']);_0x421e31[_0x54c4('0x33')]=_[_0x54c4('0x34')](_0x421e31[_0x54c4('0x36')],_0x421e31[_0x54c4('0x38')]);_0x2981db[_0x54c4('0x35')]=_[_0x54c4('0x34')](_0x421e31[_0x54c4('0x36')],qs[_0x54c4('0x37')](_0x40c77e['query']['fields']));_0x2981db[_0x54c4('0x35')]=_0x2981db['attributes'][_0x54c4('0x39')]?_0x2981db['attributes']:_0x421e31[_0x54c4('0x36')];_0x2981db[_0x54c4('0x56')]=qs[_0x54c4('0x3c')](_0x40c77e[_0x54c4('0x38')][_0x54c4('0x3c')]);_0x2981db[_0x54c4('0x3d')]=qs[_0x54c4('0x33')](_[_0x54c4('0x3e')](_0x40c77e[_0x54c4('0x38')],_0x421e31[_0x54c4('0x33')]));if(_0x40c77e[_0x54c4('0x38')][_0x54c4('0x3f')]){_0x2981db[_0x54c4('0x3d')]=_[_0x54c4('0x40')](_0x2981db[_0x54c4('0x3d')],{'$or':_[_0x54c4('0x2f')](_0x2981db[_0x54c4('0x35')],function(_0x3fb256){var _0x576c50={};_0x576c50[_0x3fb256]={'$like':'%'+_0x40c77e[_0x54c4('0x38')][_0x54c4('0x3f')]+'%'};return _0x576c50;})});}_0x2981db=_['merge']({},_0x2981db,_0x40c77e[_0x54c4('0x42')]);return _0x563ebc[_0x54c4('0x55')](_0x2981db);}})['then'](function(_0x1ad834){if(_0x1ad834){_0x4fa7d2=_0x1ad834[_0x54c4('0x39')];if(!_0x40c77e['query'][_0x54c4('0x3a')](_0x54c4('0x3b'))){_0x2981db[_0x54c4('0x21')]=qs[_0x54c4('0x21')](_0x40c77e['query'][_0x54c4('0x21')]);_0x2981db[_0x54c4('0x1e')]=qs[_0x54c4('0x1e')](_0x40c77e['query'][_0x54c4('0x1e')]);}return _0x563ebc[_0x54c4('0x55')](_0x2981db);}})['then'](function(_0x277e9f){if(_0x277e9f){return _0x277e9f?{'count':_0x4fa7d2,'rows':_0x277e9f}:null;}})['then'](respondWithResult(_0x2ba535,null))[_0x54c4('0x49')](handleError(_0x2ba535,null));};exports[_0x54c4('0x57')]=function(_0x2f5c3a,_0x4f1ae5,_0x580a67){return db[_0x54c4('0x30')][_0x54c4('0x58')]({'where':{'id':_0x2f5c3a[_0x54c4('0x46')]['id']}})[_0x54c4('0x26')](handleEntityNotFound(_0x4f1ae5,null))[_0x54c4('0x26')](function(_0xe87ea3){if(_0xe87ea3){return db['sequelize'][_0x54c4('0x59')](function(_0x5b6163){return db['Interval'][_0x54c4('0x2a')]({'where':{'IntervalId':_0x2f5c3a['params']['id']},'transaction':_0x5b6163})[_0x54c4('0x26')](function(_0x50b1a6){var _0x582cb3=_[_0x54c4('0x2f')](_0x2f5c3a[_0x54c4('0x4b')],function(_0x4c8f10){delete _0x4c8f10['id'];_0x4c8f10[_0x54c4('0x54')]=_0x2f5c3a[_0x54c4('0x46')]['id'];return _0x4c8f10;});return db[_0x54c4('0x30')][_0x54c4('0x5a')](_0x582cb3,{'transaction':_0x5b6163});});})[_0x54c4('0x26')](function(){return db[_0x54c4('0x30')]['findAll']({'where':{'IntervalId':_0x2f5c3a[_0x54c4('0x46')]['id']}});});}})[_0x54c4('0x26')](respondWithResult(_0x4f1ae5,null))[_0x54c4('0x49')](handleError(_0x4f1ae5,null));};