ed71c6e1a278324fa4516a6b544f6ec64c3c71b5
[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 _0xb788=['papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','../../components/extensions/rewrite','sendStatus','status','json','offset','count','limit','set','Content-Range','apply','save','update','then','destroy','get','Intervals','end','stack','name','send','index','map','Interval','rawAttributes','fieldName','type','model','query','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','includeAll','include','findAll','rows','catch','show','params','options','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','addInterval','getIntervals','keys','addIntervals','sequelize','transaction','IntervalId','bulkCreate','eml-format','rimraf','fast-json-patch','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring'];(function(_0x55f7da,_0x186b0a){var _0x451c7f=function(_0x436a67){while(--_0x436a67){_0x55f7da['push'](_0x55f7da['shift']());}};_0x451c7f(++_0x186b0a);}(_0xb788,0x1d4));var _0x8b78=function(_0x540133,_0x41783f){_0x540133=_0x540133-0x0;var _0x26b6e9=_0xb788[_0x540133];return _0x26b6e9;};'use strict';var emlformat=require(_0x8b78('0x0'));var rimraf=require(_0x8b78('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x8b78('0x2'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x8b78('0x3'));var Mustache=require(_0x8b78('0x4'));var util=require(_0x8b78('0x5'));var path=require(_0x8b78('0x6'));var sox=require(_0x8b78('0x7'));var csv=require(_0x8b78('0x8'));var ejs=require(_0x8b78('0x9'));var fs=require('fs');var fs_extra=require(_0x8b78('0xa'));var _=require(_0x8b78('0xb'));var squel=require(_0x8b78('0xc'));var crypto=require(_0x8b78('0xd'));var jsforce=require(_0x8b78('0xe'));var deskjs=require(_0x8b78('0xf'));var toCsv=require(_0x8b78('0x8'));var querystring=require(_0x8b78('0x10'));var Papa=require(_0x8b78('0x11'));var Redis=require(_0x8b78('0x12'));var authService=require(_0x8b78('0x13'));var qs=require(_0x8b78('0x14'));var as=require(_0x8b78('0x15'));var hardwareService=require(_0x8b78('0x16'));var logger=require(_0x8b78('0x17'))(_0x8b78('0x18'));var utils=require(_0x8b78('0x19'));var config=require(_0x8b78('0x1a'));var licenseUtil=require('../../config/license/util');var db=require(_0x8b78('0x1b'))['db'];var extensions=require(_0x8b78('0x1c'));function respondWithStatusCode(_0x47af90,_0x658c08){_0x658c08=_0x658c08||0xcc;return function(_0x4bc545){if(_0x4bc545){return _0x47af90[_0x8b78('0x1d')](_0x658c08);}return _0x47af90[_0x8b78('0x1e')](_0x658c08)['end']();};}function respondWithResult(_0x587e5f,_0x2c7fdc){_0x2c7fdc=_0x2c7fdc||0xc8;return function(_0x52940c){if(_0x52940c){return _0x587e5f['status'](_0x2c7fdc)[_0x8b78('0x1f')](_0x52940c);}};}function respondWithFilteredResult(_0x213800,_0x48bbf5){return function(_0x1eaca4){if(_0x1eaca4){var _0x4bb437=typeof _0x48bbf5[_0x8b78('0x20')]==='undefined'&&typeof _0x48bbf5['limit']==='undefined';var _0x2e71f9=_0x1eaca4[_0x8b78('0x21')];var _0x25c6dd=_0x4bb437?0x0:_0x48bbf5[_0x8b78('0x20')];var _0x224f1f=_0x4bb437?_0x1eaca4[_0x8b78('0x21')]:_0x48bbf5['offset']+_0x48bbf5[_0x8b78('0x22')];var _0x1bd869;if(_0x224f1f>=_0x2e71f9){_0x224f1f=_0x2e71f9;_0x1bd869=0xc8;}else{_0x1bd869=0xce;}_0x213800[_0x8b78('0x1e')](_0x1bd869);return _0x213800[_0x8b78('0x23')](_0x8b78('0x24'),_0x25c6dd+'-'+_0x224f1f+'/'+_0x2e71f9)[_0x8b78('0x1f')](_0x1eaca4);}return null;};}function patchUpdates(_0x280f59){return function(_0x51ec01){try{jsonpatch[_0x8b78('0x25')](_0x51ec01,_0x280f59,!![]);}catch(_0x17274d){return BPromise['reject'](_0x17274d);}return _0x51ec01[_0x8b78('0x26')]();};}function saveUpdates(_0x1b870e,_0x439020){return function(_0xefe345){if(_0xefe345){return _0xefe345[_0x8b78('0x27')](_0x1b870e)[_0x8b78('0x28')](function(_0x5de532){return _0x5de532;});}return null;};}function removeEntity(_0x2bd382,_0x1ec99b){return function(_0x4c9649){if(_0x4c9649){return _0x4c9649[_0x8b78('0x29')]()['then'](function(){var _0x340ea3=_0x4c9649[_0x8b78('0x2a')]({'plain':!![]});var _0x3c554d=_0x8b78('0x2b');return db['UserProfileResource'][_0x8b78('0x29')]({'where':{'type':_0x3c554d,'resourceId':_0x340ea3['id']}})['then'](function(){return _0x4c9649;});})['then'](function(){_0x2bd382[_0x8b78('0x1e')](0xcc)[_0x8b78('0x2c')]();});}};}function handleEntityNotFound(_0x578d1e,_0x394ba2){return function(_0x12509c){if(!_0x12509c){_0x578d1e['sendStatus'](0x194);}return _0x12509c;};}function handleError(_0x4e33e0,_0x1dce8f){_0x1dce8f=_0x1dce8f||0x1f4;return function(_0x20830f){logger['error'](_0x20830f[_0x8b78('0x2d')]);if(_0x20830f[_0x8b78('0x2e')]){delete _0x20830f[_0x8b78('0x2e')];}_0x4e33e0[_0x8b78('0x1e')](_0x1dce8f)[_0x8b78('0x2f')](_0x20830f);};}exports[_0x8b78('0x30')]=function(_0x3da1e0,_0x3adb7c){var _0x43ce1d={},_0x6f6bc1={},_0x345198={'count':0x0,'rows':[]};var _0x153f22=_[_0x8b78('0x31')](db[_0x8b78('0x32')][_0x8b78('0x33')],function(_0x544992){return{'name':_0x544992[_0x8b78('0x34')],'type':_0x544992[_0x8b78('0x35')]['key']};});_0x6f6bc1[_0x8b78('0x36')]=_[_0x8b78('0x31')](_0x153f22,_0x8b78('0x2e'));_0x6f6bc1['query']=_['keys'](_0x3da1e0[_0x8b78('0x37')]);_0x6f6bc1[_0x8b78('0x38')]=_['intersection'](_0x6f6bc1['model'],_0x6f6bc1[_0x8b78('0x37')]);_0x43ce1d[_0x8b78('0x39')]=_[_0x8b78('0x3a')](_0x6f6bc1['model'],qs[_0x8b78('0x3b')](_0x3da1e0['query'][_0x8b78('0x3b')]));_0x43ce1d[_0x8b78('0x39')]=_0x43ce1d[_0x8b78('0x39')][_0x8b78('0x3c')]?_0x43ce1d['attributes']:_0x6f6bc1[_0x8b78('0x36')];if(!_0x3da1e0['query'][_0x8b78('0x3d')](_0x8b78('0x3e'))){_0x43ce1d[_0x8b78('0x22')]=qs[_0x8b78('0x22')](_0x3da1e0['query'][_0x8b78('0x22')]);_0x43ce1d[_0x8b78('0x20')]=qs[_0x8b78('0x20')](_0x3da1e0[_0x8b78('0x37')][_0x8b78('0x20')]);}_0x43ce1d[_0x8b78('0x3f')]=qs[_0x8b78('0x40')](_0x3da1e0[_0x8b78('0x37')][_0x8b78('0x40')]);_0x43ce1d[_0x8b78('0x41')]=qs['filters'](_[_0x8b78('0x42')](_0x3da1e0['query'],_0x6f6bc1[_0x8b78('0x38')]),_0x153f22);if(_0x3da1e0[_0x8b78('0x37')][_0x8b78('0x43')]){_0x43ce1d[_0x8b78('0x41')]=_[_0x8b78('0x44')](_0x43ce1d['where'],{'$or':_[_0x8b78('0x31')](_0x153f22,function(_0x3423a0){if(_0x3423a0['type']!==_0x8b78('0x45')){var _0x2cd086={};_0x2cd086[_0x3423a0[_0x8b78('0x2e')]]={'$like':'%'+_0x3da1e0[_0x8b78('0x37')][_0x8b78('0x43')]+'%'};return _0x2cd086;}})});}_0x43ce1d=_[_0x8b78('0x44')]({},_0x43ce1d,_0x3da1e0['options']);var _0x1c15fa={'where':_0x43ce1d[_0x8b78('0x41')]};return db['Interval'][_0x8b78('0x21')](_0x1c15fa)[_0x8b78('0x28')](function(_0x1f6f0a){_0x345198['count']=_0x1f6f0a;if(_0x3da1e0[_0x8b78('0x37')][_0x8b78('0x46')]){_0x43ce1d[_0x8b78('0x47')]=[{'all':!![]}];}return db[_0x8b78('0x32')][_0x8b78('0x48')](_0x43ce1d);})[_0x8b78('0x28')](function(_0xcaffd8){_0x345198[_0x8b78('0x49')]=_0xcaffd8;return _0x345198;})['then'](respondWithFilteredResult(_0x3adb7c,_0x43ce1d))[_0x8b78('0x4a')](handleError(_0x3adb7c,null));};exports[_0x8b78('0x4b')]=function(_0x13baf6,_0x5d676f){var _0x502f4d={'raw':!![],'where':{'id':_0x13baf6[_0x8b78('0x4c')]['id']}},_0x412205={};_0x412205[_0x8b78('0x36')]=_['keys'](db['Interval']['rawAttributes']);_0x412205[_0x8b78('0x37')]=_['keys'](_0x13baf6[_0x8b78('0x37')]);_0x412205[_0x8b78('0x38')]=_['intersection'](_0x412205[_0x8b78('0x36')],_0x412205[_0x8b78('0x37')]);_0x502f4d[_0x8b78('0x39')]=_[_0x8b78('0x3a')](_0x412205[_0x8b78('0x36')],qs[_0x8b78('0x3b')](_0x13baf6[_0x8b78('0x37')]['fields']));_0x502f4d[_0x8b78('0x39')]=_0x502f4d[_0x8b78('0x39')][_0x8b78('0x3c')]?_0x502f4d['attributes']:_0x412205[_0x8b78('0x36')];if(_0x13baf6[_0x8b78('0x37')][_0x8b78('0x46')]){_0x502f4d[_0x8b78('0x47')]=[{'all':!![]}];}_0x502f4d=_[_0x8b78('0x44')]({},_0x502f4d,_0x13baf6[_0x8b78('0x4d')]);return db[_0x8b78('0x32')][_0x8b78('0x4e')](_0x502f4d)[_0x8b78('0x28')](handleEntityNotFound(_0x5d676f,null))['then'](respondWithResult(_0x5d676f,null))[_0x8b78('0x4a')](handleError(_0x5d676f,null));};exports[_0x8b78('0x4f')]=function(_0x3d4256,_0x20dfd4){return db['Interval'][_0x8b78('0x4f')](_0x3d4256[_0x8b78('0x50')],{})[_0x8b78('0x28')](function(_0x1c8742){var _0x43c564=_0x3d4256[_0x8b78('0x51')]['get']({'plain':!![]});if(!_0x43c564)throw new Error(_0x8b78('0x52'));if(_0x43c564['role']===_0x8b78('0x51')){var _0x490180=_0x1c8742['get']({'plain':!![]});var _0x250805=_0x8b78('0x2b');return db[_0x8b78('0x53')][_0x8b78('0x4e')]({'where':{'name':_0x250805,'userProfileId':_0x43c564[_0x8b78('0x54')]},'raw':!![]})[_0x8b78('0x28')](function(_0xb3cc7b){if(_0xb3cc7b&&_0xb3cc7b[_0x8b78('0x55')]===0x0){return db[_0x8b78('0x56')][_0x8b78('0x4f')]({'name':_0x490180[_0x8b78('0x2e')],'resourceId':_0x490180['id'],'type':_0xb3cc7b[_0x8b78('0x2e')],'sectionId':_0xb3cc7b['id']},{})[_0x8b78('0x28')](function(){return _0x1c8742;});}else{return _0x1c8742;}})[_0x8b78('0x4a')](function(_0x315f91){logger[_0x8b78('0x57')](_0x8b78('0x58'),_0x315f91);throw _0x315f91;});}return _0x1c8742;})['then'](respondWithResult(_0x20dfd4,0xc9))[_0x8b78('0x4a')](handleError(_0x20dfd4,null));};exports[_0x8b78('0x27')]=function(_0x22eced,_0x167f7c){if(_0x22eced[_0x8b78('0x50')]['id']){delete _0x22eced[_0x8b78('0x50')]['id'];}return db['Interval']['find']({'where':{'id':_0x22eced[_0x8b78('0x4c')]['id']}})['then'](handleEntityNotFound(_0x167f7c,null))[_0x8b78('0x28')](saveUpdates(_0x22eced[_0x8b78('0x50')],null))['then'](respondWithResult(_0x167f7c,null))['catch'](handleError(_0x167f7c,null));};exports[_0x8b78('0x29')]=function(_0x28eb77,_0x5588d2){return db[_0x8b78('0x32')][_0x8b78('0x4e')]({'where':{'id':_0x28eb77[_0x8b78('0x4c')]['id']}})[_0x8b78('0x28')](handleEntityNotFound(_0x5588d2,null))[_0x8b78('0x28')](removeEntity(_0x5588d2,null))[_0x8b78('0x4a')](handleError(_0x5588d2,null));};exports[_0x8b78('0x59')]=function(_0x1297c1,_0x41aba8,_0x422be8){if(_0x1297c1[_0x8b78('0x50')]['id']){delete _0x1297c1[_0x8b78('0x50')]['id'];}return db['Interval'][_0x8b78('0x4e')]({'where':{'id':_0x1297c1[_0x8b78('0x4c')]['id']}})[_0x8b78('0x28')](handleEntityNotFound(_0x41aba8,null))[_0x8b78('0x28')](function(_0x5a1f83){if(_0x5a1f83){_0x1297c1['body']['IntervalId']=_0x5a1f83['id'];return db[_0x8b78('0x32')][_0x8b78('0x4f')](_0x1297c1['body']);}})[_0x8b78('0x28')](respondWithResult(_0x41aba8,null))[_0x8b78('0x4a')](handleError(_0x41aba8,null));};exports[_0x8b78('0x5a')]=function(_0x50fe33,_0xbf5ea9,_0xd0ac59){var _0x5b0185={};var _0x4816e3={};var _0x5ebf2a;var _0x1de98e;return db[_0x8b78('0x32')]['findOne']({'where':{'id':_0x50fe33['params']['id']}})[_0x8b78('0x28')](handleEntityNotFound(_0xbf5ea9,null))['then'](function(_0x4b1b51){if(_0x4b1b51){_0x5ebf2a=_0x4b1b51;_0x4816e3[_0x8b78('0x36')]=_[_0x8b78('0x5b')](db[_0x8b78('0x32')][_0x8b78('0x33')]);_0x4816e3[_0x8b78('0x37')]=_['keys'](_0x50fe33[_0x8b78('0x37')]);_0x4816e3['filters']=_[_0x8b78('0x3a')](_0x4816e3['model'],_0x4816e3['query']);_0x5b0185[_0x8b78('0x39')]=_[_0x8b78('0x3a')](_0x4816e3['model'],qs[_0x8b78('0x3b')](_0x50fe33[_0x8b78('0x37')]['fields']));_0x5b0185[_0x8b78('0x39')]=_0x5b0185['attributes']['length']?_0x5b0185['attributes']:_0x4816e3[_0x8b78('0x36')];_0x5b0185['order']=qs[_0x8b78('0x40')](_0x50fe33[_0x8b78('0x37')][_0x8b78('0x40')]);_0x5b0185[_0x8b78('0x41')]=qs['filters'](_[_0x8b78('0x42')](_0x50fe33[_0x8b78('0x37')],_0x4816e3['filters']));if(_0x50fe33[_0x8b78('0x37')][_0x8b78('0x43')]){_0x5b0185['where']=_['merge'](_0x5b0185['where'],{'$or':_[_0x8b78('0x31')](_0x5b0185[_0x8b78('0x39')],function(_0xe1dc4a){var _0x239c98={};_0x239c98[_0xe1dc4a]={'$like':'%'+_0x50fe33[_0x8b78('0x37')][_0x8b78('0x43')]+'%'};return _0x239c98;})});}_0x5b0185=_[_0x8b78('0x44')]({},_0x5b0185,_0x50fe33[_0x8b78('0x4d')]);return _0x5ebf2a['getIntervals'](_0x5b0185);}})['then'](function(_0x29c3e3){if(_0x29c3e3){_0x1de98e=_0x29c3e3[_0x8b78('0x3c')];if(!_0x50fe33[_0x8b78('0x37')][_0x8b78('0x3d')](_0x8b78('0x3e'))){_0x5b0185[_0x8b78('0x22')]=qs[_0x8b78('0x22')](_0x50fe33['query'][_0x8b78('0x22')]);_0x5b0185['offset']=qs[_0x8b78('0x20')](_0x50fe33[_0x8b78('0x37')]['offset']);}return _0x5ebf2a[_0x8b78('0x5a')](_0x5b0185);}})[_0x8b78('0x28')](function(_0x85364e){if(_0x85364e){return _0x85364e?{'count':_0x1de98e,'rows':_0x85364e}:null;}})[_0x8b78('0x28')](respondWithResult(_0xbf5ea9,null))[_0x8b78('0x4a')](handleError(_0xbf5ea9,null));};exports[_0x8b78('0x5c')]=function(_0x3d4aa0,_0x2add4f,_0x4f6e89){return db[_0x8b78('0x32')]['findOne']({'where':{'id':_0x3d4aa0['params']['id']}})[_0x8b78('0x28')](handleEntityNotFound(_0x2add4f,null))[_0x8b78('0x28')](function(_0x59fb06){if(_0x59fb06){return db[_0x8b78('0x5d')][_0x8b78('0x5e')](function(_0x5aca9c){return db['Interval'][_0x8b78('0x29')]({'where':{'IntervalId':_0x3d4aa0[_0x8b78('0x4c')]['id']},'transaction':_0x5aca9c})[_0x8b78('0x28')](function(_0x247fec){var _0x2a3def=_[_0x8b78('0x31')](_0x3d4aa0[_0x8b78('0x50')],function(_0x1d79bb){delete _0x1d79bb['id'];_0x1d79bb[_0x8b78('0x5f')]=_0x3d4aa0[_0x8b78('0x4c')]['id'];return _0x1d79bb;});return db[_0x8b78('0x32')][_0x8b78('0x60')](_0x2a3def,{'transaction':_0x5aca9c});});})[_0x8b78('0x28')](function(){return db['Interval'][_0x8b78('0x48')]({'where':{'IntervalId':_0x3d4aa0['params']['id']}});});}})[_0x8b78('0x28')](respondWithResult(_0x2add4f,null))['catch'](handleError(_0x2add4f,null));};