695fa1f552c002dfa4ef3b925be4315a6a46c224
[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 _0x003e=['Interval','include','findAll','rows','params','includeAll','find','catch','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','addInterval','IntervalId','findOne','getIntervals','addIntervals','sequelize','transaction','bulkCreate','eml-format','zip-dir','request-promise','moment','bluebird','mustache','util','path','fs-extra','lodash','crypto','desk.js','to-csv','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','json','offset','undefined','limit','count','Content-Range','apply','save','update','then','destroy','get','Intervals','UserProfileResource','error','stack','name','send','map','rawAttributes','type','key','query','keys','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','filters','pick','filter','where','merge','VIRTUAL','options'];(function(_0x476bf4,_0x2a3755){var _0x788ffe=function(_0x13fa11){while(--_0x13fa11){_0x476bf4['push'](_0x476bf4['shift']());}};_0x788ffe(++_0x2a3755);}(_0x003e,0x73));var _0xe003=function(_0x500c0,_0xdb6a03){_0x500c0=_0x500c0-0x0;var _0xdd146f=_0x003e[_0x500c0];return _0xdd146f;};'use strict';var emlformat=require(_0xe003('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xe003('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0xe003('0x2'));var moment=require(_0xe003('0x3'));var BPromise=require(_0xe003('0x4'));var Mustache=require(_0xe003('0x5'));var util=require(_0xe003('0x6'));var path=require(_0xe003('0x7'));var sox=require('sox');var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xe003('0x8'));var _=require(_0xe003('0x9'));var squel=require('squel');var crypto=require(_0xe003('0xa'));var jsforce=require('jsforce');var deskjs=require(_0xe003('0xb'));var toCsv=require(_0xe003('0xc'));var querystring=require('querystring');var Papa=require(_0xe003('0xd'));var Redis=require(_0xe003('0xe'));var authService=require(_0xe003('0xf'));var qs=require(_0xe003('0x10'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xe003('0x11'));var logger=require(_0xe003('0x12'))(_0xe003('0x13'));var utils=require(_0xe003('0x14'));var config=require(_0xe003('0x15'));var licenseUtil=require('../../config/license/util');var db=require(_0xe003('0x16'))['db'];var extensions=require('../../components/extensions/rewrite');function respondWithStatusCode(_0x2c2927,_0x1d53d4){_0x1d53d4=_0x1d53d4||0xcc;return function(_0x2215bb){if(_0x2215bb){return _0x2c2927[_0xe003('0x17')](_0x1d53d4);}return _0x2c2927[_0xe003('0x18')](_0x1d53d4)['end']();};}function respondWithResult(_0x28cc89,_0x4cfbcf){_0x4cfbcf=_0x4cfbcf||0xc8;return function(_0x14c679){if(_0x14c679){return _0x28cc89[_0xe003('0x18')](_0x4cfbcf)[_0xe003('0x19')](_0x14c679);}};}function respondWithFilteredResult(_0x5edc33,_0x53b230){return function(_0x15e0fa){if(_0x15e0fa){var _0x1f2047=typeof _0x53b230[_0xe003('0x1a')]===_0xe003('0x1b')&&typeof _0x53b230[_0xe003('0x1c')]===_0xe003('0x1b');var _0x53fb56=_0x15e0fa[_0xe003('0x1d')];var _0x34b6e1=_0x1f2047?0x0:_0x53b230[_0xe003('0x1a')];var _0x54004b=_0x1f2047?_0x15e0fa[_0xe003('0x1d')]:_0x53b230[_0xe003('0x1a')]+_0x53b230[_0xe003('0x1c')];var _0x385470;if(_0x54004b>=_0x53fb56){_0x54004b=_0x53fb56;_0x385470=0xc8;}else{_0x385470=0xce;}_0x5edc33[_0xe003('0x18')](_0x385470);return _0x5edc33['set'](_0xe003('0x1e'),_0x34b6e1+'-'+_0x54004b+'/'+_0x53fb56)['json'](_0x15e0fa);}return null;};}function patchUpdates(_0x441b52){return function(_0x580484){try{jsonpatch[_0xe003('0x1f')](_0x580484,_0x441b52,!![]);}catch(_0x486a6f){return BPromise['reject'](_0x486a6f);}return _0x580484[_0xe003('0x20')]();};}function saveUpdates(_0xef2357,_0x5419b7){return function(_0x53b5fb){if(_0x53b5fb){return _0x53b5fb[_0xe003('0x21')](_0xef2357)[_0xe003('0x22')](function(_0x249e02){return _0x249e02;});}return null;};}function removeEntity(_0x115b79,_0x10eb81){return function(_0x1f8e09){if(_0x1f8e09){return _0x1f8e09[_0xe003('0x23')]()[_0xe003('0x22')](function(){var _0x2e7faf=_0x1f8e09[_0xe003('0x24')]({'plain':!![]});var _0x5d6aa1=_0xe003('0x25');return db[_0xe003('0x26')][_0xe003('0x23')]({'where':{'type':_0x5d6aa1,'resourceId':_0x2e7faf['id']}})[_0xe003('0x22')](function(){return _0x1f8e09;});})[_0xe003('0x22')](function(){_0x115b79[_0xe003('0x18')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4052d1,_0x1cdcf7){return function(_0x35da34){if(!_0x35da34){_0x4052d1[_0xe003('0x17')](0x194);}return _0x35da34;};}function handleError(_0x47519d,_0x94ceb8){_0x94ceb8=_0x94ceb8||0x1f4;return function(_0x376387){logger[_0xe003('0x27')](_0x376387[_0xe003('0x28')]);if(_0x376387[_0xe003('0x29')]){delete _0x376387[_0xe003('0x29')];}_0x47519d['status'](_0x94ceb8)[_0xe003('0x2a')](_0x376387);};}exports['index']=function(_0x4f08c4,_0x533f6a){var _0xc32e8e={},_0x5121b3={},_0x4f900={'count':0x0,'rows':[]};var _0x3940aa=_[_0xe003('0x2b')](db['Interval'][_0xe003('0x2c')],function(_0x27348f){return{'name':_0x27348f['fieldName'],'type':_0x27348f[_0xe003('0x2d')][_0xe003('0x2e')]};});_0x5121b3['model']=_[_0xe003('0x2b')](_0x3940aa,_0xe003('0x29'));_0x5121b3[_0xe003('0x2f')]=_[_0xe003('0x30')](_0x4f08c4[_0xe003('0x2f')]);_0x5121b3['filters']=_[_0xe003('0x31')](_0x5121b3[_0xe003('0x32')],_0x5121b3[_0xe003('0x2f')]);_0xc32e8e[_0xe003('0x33')]=_[_0xe003('0x31')](_0x5121b3[_0xe003('0x32')],qs[_0xe003('0x34')](_0x4f08c4['query'][_0xe003('0x34')]));_0xc32e8e[_0xe003('0x33')]=_0xc32e8e[_0xe003('0x33')][_0xe003('0x35')]?_0xc32e8e['attributes']:_0x5121b3[_0xe003('0x32')];if(!_0x4f08c4['query'][_0xe003('0x36')](_0xe003('0x37'))){_0xc32e8e[_0xe003('0x1c')]=qs[_0xe003('0x1c')](_0x4f08c4[_0xe003('0x2f')][_0xe003('0x1c')]);_0xc32e8e['offset']=qs[_0xe003('0x1a')](_0x4f08c4[_0xe003('0x2f')][_0xe003('0x1a')]);}_0xc32e8e[_0xe003('0x38')]=qs[_0xe003('0x39')](_0x4f08c4[_0xe003('0x2f')][_0xe003('0x39')]);_0xc32e8e['where']=qs[_0xe003('0x3a')](_[_0xe003('0x3b')](_0x4f08c4[_0xe003('0x2f')],_0x5121b3[_0xe003('0x3a')]),_0x3940aa);if(_0x4f08c4['query'][_0xe003('0x3c')]){_0xc32e8e[_0xe003('0x3d')]=_[_0xe003('0x3e')](_0xc32e8e[_0xe003('0x3d')],{'$or':_[_0xe003('0x2b')](_0x3940aa,function(_0x319e93){if(_0x319e93[_0xe003('0x2d')]!==_0xe003('0x3f')){var _0x1a647e={};_0x1a647e[_0x319e93['name']]={'$like':'%'+_0x4f08c4['query'][_0xe003('0x3c')]+'%'};return _0x1a647e;}})});}_0xc32e8e=_[_0xe003('0x3e')]({},_0xc32e8e,_0x4f08c4[_0xe003('0x40')]);var _0x90447d={'where':_0xc32e8e[_0xe003('0x3d')]};return db[_0xe003('0x41')][_0xe003('0x1d')](_0x90447d)[_0xe003('0x22')](function(_0x2bf37c){_0x4f900['count']=_0x2bf37c;if(_0x4f08c4[_0xe003('0x2f')]['includeAll']){_0xc32e8e[_0xe003('0x42')]=[{'all':!![]}];}return db[_0xe003('0x41')][_0xe003('0x43')](_0xc32e8e);})[_0xe003('0x22')](function(_0x449b5e){_0x4f900[_0xe003('0x44')]=_0x449b5e;return _0x4f900;})[_0xe003('0x22')](respondWithFilteredResult(_0x533f6a,_0xc32e8e))['catch'](handleError(_0x533f6a,null));};exports['show']=function(_0x546cca,_0x173663){var _0x2100c6={'raw':!![],'where':{'id':_0x546cca[_0xe003('0x45')]['id']}},_0x1ba678={};_0x1ba678[_0xe003('0x32')]=_[_0xe003('0x30')](db['Interval'][_0xe003('0x2c')]);_0x1ba678['query']=_['keys'](_0x546cca['query']);_0x1ba678[_0xe003('0x3a')]=_[_0xe003('0x31')](_0x1ba678['model'],_0x1ba678[_0xe003('0x2f')]);_0x2100c6[_0xe003('0x33')]=_['intersection'](_0x1ba678[_0xe003('0x32')],qs['fields'](_0x546cca[_0xe003('0x2f')][_0xe003('0x34')]));_0x2100c6[_0xe003('0x33')]=_0x2100c6[_0xe003('0x33')]['length']?_0x2100c6['attributes']:_0x1ba678[_0xe003('0x32')];if(_0x546cca[_0xe003('0x2f')][_0xe003('0x46')]){_0x2100c6[_0xe003('0x42')]=[{'all':!![]}];}_0x2100c6=_[_0xe003('0x3e')]({},_0x2100c6,_0x546cca[_0xe003('0x40')]);return db['Interval'][_0xe003('0x47')](_0x2100c6)[_0xe003('0x22')](handleEntityNotFound(_0x173663,null))[_0xe003('0x22')](respondWithResult(_0x173663,null))[_0xe003('0x48')](handleError(_0x173663,null));};exports[_0xe003('0x49')]=function(_0x4a9a6a,_0x54a0e3){return db[_0xe003('0x41')][_0xe003('0x49')](_0x4a9a6a[_0xe003('0x4a')],{})[_0xe003('0x22')](function(_0x339d3c){var _0xb057ee=_0x4a9a6a[_0xe003('0x4b')]['get']({'plain':!![]});if(!_0xb057ee)throw new Error(_0xe003('0x4c'));if(_0xb057ee[_0xe003('0x4d')]==='user'){var _0x377f0c=_0x339d3c['get']({'plain':!![]});var _0x574e61='Intervals';return db[_0xe003('0x4e')][_0xe003('0x47')]({'where':{'name':_0x574e61,'userProfileId':_0xb057ee[_0xe003('0x4f')]},'raw':!![]})[_0xe003('0x22')](function(_0x249abc){if(_0x249abc&&_0x249abc[_0xe003('0x50')]===0x0){return db[_0xe003('0x26')][_0xe003('0x49')]({'name':_0x377f0c[_0xe003('0x29')],'resourceId':_0x377f0c['id'],'type':_0x249abc[_0xe003('0x29')],'sectionId':_0x249abc['id']},{})[_0xe003('0x22')](function(){return _0x339d3c;});}else{return _0x339d3c;}})['catch'](function(_0x407f3){logger[_0xe003('0x27')](_0xe003('0x51'),_0x407f3);throw _0x407f3;});}return _0x339d3c;})[_0xe003('0x22')](respondWithResult(_0x54a0e3,0xc9))[_0xe003('0x48')](handleError(_0x54a0e3,null));};exports[_0xe003('0x21')]=function(_0xd8c142,_0x5c19bc){if(_0xd8c142[_0xe003('0x4a')]['id']){delete _0xd8c142[_0xe003('0x4a')]['id'];}return db[_0xe003('0x41')][_0xe003('0x47')]({'where':{'id':_0xd8c142['params']['id']}})['then'](handleEntityNotFound(_0x5c19bc,null))[_0xe003('0x22')](saveUpdates(_0xd8c142[_0xe003('0x4a')],null))[_0xe003('0x22')](respondWithResult(_0x5c19bc,null))[_0xe003('0x48')](handleError(_0x5c19bc,null));};exports[_0xe003('0x23')]=function(_0x387e4a,_0x73437a){return db[_0xe003('0x41')][_0xe003('0x47')]({'where':{'id':_0x387e4a[_0xe003('0x45')]['id']}})[_0xe003('0x22')](handleEntityNotFound(_0x73437a,null))[_0xe003('0x22')](removeEntity(_0x73437a,null))[_0xe003('0x48')](handleError(_0x73437a,null));};exports[_0xe003('0x52')]=function(_0x323962,_0x35ec9c,_0x30aa2b){if(_0x323962[_0xe003('0x4a')]['id']){delete _0x323962[_0xe003('0x4a')]['id'];}return db['Interval']['find']({'where':{'id':_0x323962['params']['id']}})['then'](handleEntityNotFound(_0x35ec9c,null))['then'](function(_0x199d62){if(_0x199d62){_0x323962[_0xe003('0x4a')][_0xe003('0x53')]=_0x199d62['id'];return db[_0xe003('0x41')][_0xe003('0x49')](_0x323962[_0xe003('0x4a')]);}})['then'](respondWithResult(_0x35ec9c,null))['catch'](handleError(_0x35ec9c,null));};exports['getIntervals']=function(_0x112ef0,_0x393d71,_0x3abab5){var _0x41a64b={};var _0x4db1f6={};var _0x4ca50f;var _0x1ddeff;return db[_0xe003('0x41')][_0xe003('0x54')]({'where':{'id':_0x112ef0[_0xe003('0x45')]['id']}})['then'](handleEntityNotFound(_0x393d71,null))[_0xe003('0x22')](function(_0x2cdadd){if(_0x2cdadd){_0x4ca50f=_0x2cdadd;_0x4db1f6[_0xe003('0x32')]=_[_0xe003('0x30')](db[_0xe003('0x41')][_0xe003('0x2c')]);_0x4db1f6[_0xe003('0x2f')]=_[_0xe003('0x30')](_0x112ef0[_0xe003('0x2f')]);_0x4db1f6['filters']=_[_0xe003('0x31')](_0x4db1f6[_0xe003('0x32')],_0x4db1f6['query']);_0x41a64b['attributes']=_['intersection'](_0x4db1f6[_0xe003('0x32')],qs[_0xe003('0x34')](_0x112ef0[_0xe003('0x2f')][_0xe003('0x34')]));_0x41a64b[_0xe003('0x33')]=_0x41a64b[_0xe003('0x33')][_0xe003('0x35')]?_0x41a64b[_0xe003('0x33')]:_0x4db1f6[_0xe003('0x32')];_0x41a64b[_0xe003('0x38')]=qs['sort'](_0x112ef0[_0xe003('0x2f')]['sort']);_0x41a64b[_0xe003('0x3d')]=qs[_0xe003('0x3a')](_[_0xe003('0x3b')](_0x112ef0[_0xe003('0x2f')],_0x4db1f6[_0xe003('0x3a')]));if(_0x112ef0[_0xe003('0x2f')][_0xe003('0x3c')]){_0x41a64b[_0xe003('0x3d')]=_[_0xe003('0x3e')](_0x41a64b[_0xe003('0x3d')],{'$or':_[_0xe003('0x2b')](_0x41a64b[_0xe003('0x33')],function(_0x3621cf){var _0x3e76c3={};_0x3e76c3[_0x3621cf]={'$like':'%'+_0x112ef0[_0xe003('0x2f')]['filter']+'%'};return _0x3e76c3;})});}_0x41a64b=_[_0xe003('0x3e')]({},_0x41a64b,_0x112ef0['options']);return _0x4ca50f[_0xe003('0x55')](_0x41a64b);}})['then'](function(_0x5012dd){if(_0x5012dd){_0x1ddeff=_0x5012dd[_0xe003('0x35')];if(!_0x112ef0[_0xe003('0x2f')]['hasOwnProperty'](_0xe003('0x37'))){_0x41a64b[_0xe003('0x1c')]=qs['limit'](_0x112ef0['query']['limit']);_0x41a64b['offset']=qs[_0xe003('0x1a')](_0x112ef0[_0xe003('0x2f')][_0xe003('0x1a')]);}return _0x4ca50f[_0xe003('0x55')](_0x41a64b);}})[_0xe003('0x22')](function(_0x4456ec){if(_0x4456ec){return _0x4456ec?{'count':_0x1ddeff,'rows':_0x4456ec}:null;}})[_0xe003('0x22')](respondWithResult(_0x393d71,null))[_0xe003('0x48')](handleError(_0x393d71,null));};exports[_0xe003('0x56')]=function(_0x26955c,_0x178650,_0x203c2b){return db[_0xe003('0x41')][_0xe003('0x54')]({'where':{'id':_0x26955c[_0xe003('0x45')]['id']}})['then'](handleEntityNotFound(_0x178650,null))[_0xe003('0x22')](function(_0xd90bcb){if(_0xd90bcb){return db[_0xe003('0x57')][_0xe003('0x58')](function(_0x2e653f){return db['Interval']['destroy']({'where':{'IntervalId':_0x26955c[_0xe003('0x45')]['id']},'transaction':_0x2e653f})[_0xe003('0x22')](function(_0x2b4723){var _0x352b2a=_[_0xe003('0x2b')](_0x26955c['body'],function(_0x38acf3){delete _0x38acf3['id'];_0x38acf3[_0xe003('0x53')]=_0x26955c[_0xe003('0x45')]['id'];return _0x38acf3;});return db['Interval'][_0xe003('0x59')](_0x352b2a,{'transaction':_0x2e653f});});})['then'](function(){return db[_0xe003('0x41')][_0xe003('0x43')]({'where':{'IntervalId':_0x26955c[_0xe003('0x45')]['id']}});});}})['then'](respondWithResult(_0x178650,null))[_0xe003('0x48')](handleError(_0x178650,null));};