ee0c865893510dd54a76f3c126acb7b2d4c44b93
[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 _0x5be8=['error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','IntervalId','getIntervals','findOne','length','order','addIntervals','transaction','bulkCreate','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','../../components/extensions/rewrite','sendStatus','end','status','json','undefined','offset','count','limit','set','apply','reject','save','update','then','destroy','get','Intervals','UserProfileResource','stack','name','send','index','map','Interval','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','nolimit','sort','where','pick','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','find','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation'];(function(_0x5a3514,_0x4329fc){var _0x26f875=function(_0x541009){while(--_0x541009){_0x5a3514['push'](_0x5a3514['shift']());}};_0x26f875(++_0x4329fc);}(_0x5be8,0x1eb));var _0x85be=function(_0x56b67b,_0x836165){_0x56b67b=_0x56b67b-0x0;var _0x416b47=_0x5be8[_0x56b67b];return _0x416b47;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x85be('0x0'));var zipdir=require(_0x85be('0x1'));var jsonpatch=require(_0x85be('0x2'));var rp=require(_0x85be('0x3'));var moment=require(_0x85be('0x4'));var BPromise=require(_0x85be('0x5'));var Mustache=require(_0x85be('0x6'));var util=require(_0x85be('0x7'));var path=require(_0x85be('0x8'));var sox=require(_0x85be('0x9'));var csv=require(_0x85be('0xa'));var ejs=require(_0x85be('0xb'));var fs=require('fs');var fs_extra=require(_0x85be('0xc'));var _=require(_0x85be('0xd'));var squel=require('squel');var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x85be('0xe'));var toCsv=require(_0x85be('0xa'));var querystring=require(_0x85be('0xf'));var Papa=require(_0x85be('0x10'));var Redis=require('ioredis');var authService=require(_0x85be('0x11'));var qs=require(_0x85be('0x12'));var as=require(_0x85be('0x13'));var hardwareService=require(_0x85be('0x14'));var logger=require(_0x85be('0x15'))(_0x85be('0x16'));var utils=require(_0x85be('0x17'));var config=require(_0x85be('0x18'));var licenseUtil=require('../../config/license/util');var db=require(_0x85be('0x19'))['db'];var extensions=require(_0x85be('0x1a'));function respondWithStatusCode(_0x4b9c8f,_0x70adad){_0x70adad=_0x70adad||0xcc;return function(_0x104b2a){if(_0x104b2a){return _0x4b9c8f[_0x85be('0x1b')](_0x70adad);}return _0x4b9c8f['status'](_0x70adad)[_0x85be('0x1c')]();};}function respondWithResult(_0x47079f,_0x5b9951){_0x5b9951=_0x5b9951||0xc8;return function(_0x4bcc3e){if(_0x4bcc3e){return _0x47079f[_0x85be('0x1d')](_0x5b9951)[_0x85be('0x1e')](_0x4bcc3e);}};}function respondWithFilteredResult(_0x29437e,_0x10f10a){return function(_0x3a2c68){if(_0x3a2c68){var _0x53b74f=typeof _0x10f10a['offset']==='undefined'&&typeof _0x10f10a['limit']===_0x85be('0x1f');var _0x5401e0=_0x3a2c68['count'];var _0x157261=_0x53b74f?0x0:_0x10f10a[_0x85be('0x20')];var _0x3049c4=_0x53b74f?_0x3a2c68[_0x85be('0x21')]:_0x10f10a[_0x85be('0x20')]+_0x10f10a[_0x85be('0x22')];var _0x523211;if(_0x3049c4>=_0x5401e0){_0x3049c4=_0x5401e0;_0x523211=0xc8;}else{_0x523211=0xce;}_0x29437e[_0x85be('0x1d')](_0x523211);return _0x29437e[_0x85be('0x23')]('Content-Range',_0x157261+'-'+_0x3049c4+'/'+_0x5401e0)[_0x85be('0x1e')](_0x3a2c68);}return null;};}function patchUpdates(_0x42d30c){return function(_0x4ed070){try{jsonpatch[_0x85be('0x24')](_0x4ed070,_0x42d30c,!![]);}catch(_0xca0607){return BPromise[_0x85be('0x25')](_0xca0607);}return _0x4ed070[_0x85be('0x26')]();};}function saveUpdates(_0x18c6f6,_0x244df2){return function(_0x4d1dad){if(_0x4d1dad){return _0x4d1dad[_0x85be('0x27')](_0x18c6f6)[_0x85be('0x28')](function(_0x2332d4){return _0x2332d4;});}return null;};}function removeEntity(_0x21d0e5,_0x15d41d){return function(_0x2b2c54){if(_0x2b2c54){return _0x2b2c54[_0x85be('0x29')]()[_0x85be('0x28')](function(){var _0x156a89=_0x2b2c54[_0x85be('0x2a')]({'plain':!![]});var _0x1d9d3e=_0x85be('0x2b');return db[_0x85be('0x2c')][_0x85be('0x29')]({'where':{'type':_0x1d9d3e,'resourceId':_0x156a89['id']}})[_0x85be('0x28')](function(){return _0x2b2c54;});})[_0x85be('0x28')](function(){_0x21d0e5[_0x85be('0x1d')](0xcc)[_0x85be('0x1c')]();});}};}function handleEntityNotFound(_0x2d69bf,_0x14c90c){return function(_0x1b9123){if(!_0x1b9123){_0x2d69bf[_0x85be('0x1b')](0x194);}return _0x1b9123;};}function handleError(_0x390ac5,_0x14bbbb){_0x14bbbb=_0x14bbbb||0x1f4;return function(_0x4bcfea){logger['error'](_0x4bcfea[_0x85be('0x2d')]);if(_0x4bcfea[_0x85be('0x2e')]){delete _0x4bcfea[_0x85be('0x2e')];}_0x390ac5['status'](_0x14bbbb)[_0x85be('0x2f')](_0x4bcfea);};}exports[_0x85be('0x30')]=function(_0x34d00d,_0x159141){var _0xb90f50={},_0x12a92c={},_0x59dc44={'count':0x0,'rows':[]};var _0x1ce38a=_[_0x85be('0x31')](db[_0x85be('0x32')][_0x85be('0x33')],function(_0x3b904f){return{'name':_0x3b904f[_0x85be('0x34')],'type':_0x3b904f[_0x85be('0x35')][_0x85be('0x36')]};});_0x12a92c[_0x85be('0x37')]=_[_0x85be('0x31')](_0x1ce38a,_0x85be('0x2e'));_0x12a92c[_0x85be('0x38')]=_[_0x85be('0x39')](_0x34d00d[_0x85be('0x38')]);_0x12a92c[_0x85be('0x3a')]=_[_0x85be('0x3b')](_0x12a92c[_0x85be('0x37')],_0x12a92c[_0x85be('0x38')]);_0xb90f50[_0x85be('0x3c')]=_[_0x85be('0x3b')](_0x12a92c[_0x85be('0x37')],qs[_0x85be('0x3d')](_0x34d00d[_0x85be('0x38')][_0x85be('0x3d')]));_0xb90f50[_0x85be('0x3c')]=_0xb90f50[_0x85be('0x3c')]['length']?_0xb90f50[_0x85be('0x3c')]:_0x12a92c[_0x85be('0x37')];if(!_0x34d00d[_0x85be('0x38')][_0x85be('0x3e')](_0x85be('0x3f'))){_0xb90f50['limit']=qs[_0x85be('0x22')](_0x34d00d[_0x85be('0x38')][_0x85be('0x22')]);_0xb90f50[_0x85be('0x20')]=qs[_0x85be('0x20')](_0x34d00d['query']['offset']);}_0xb90f50['order']=qs['sort'](_0x34d00d[_0x85be('0x38')][_0x85be('0x40')]);_0xb90f50[_0x85be('0x41')]=qs[_0x85be('0x3a')](_[_0x85be('0x42')](_0x34d00d['query'],_0x12a92c[_0x85be('0x3a')]),_0x1ce38a);if(_0x34d00d[_0x85be('0x38')]['filter']){_0xb90f50[_0x85be('0x41')]=_[_0x85be('0x43')](_0xb90f50[_0x85be('0x41')],{'$or':_[_0x85be('0x31')](_0x1ce38a,function(_0x4887df){if(_0x4887df['type']!==_0x85be('0x44')){var _0x58f886={};_0x58f886[_0x4887df[_0x85be('0x2e')]]={'$like':'%'+_0x34d00d[_0x85be('0x38')]['filter']+'%'};return _0x58f886;}})});}_0xb90f50=_[_0x85be('0x43')]({},_0xb90f50,_0x34d00d[_0x85be('0x45')]);var _0x42962a={'where':_0xb90f50[_0x85be('0x41')]};return db[_0x85be('0x32')][_0x85be('0x21')](_0x42962a)[_0x85be('0x28')](function(_0x606713){_0x59dc44[_0x85be('0x21')]=_0x606713;if(_0x34d00d[_0x85be('0x38')][_0x85be('0x46')]){_0xb90f50[_0x85be('0x47')]=[{'all':!![]}];}return db['Interval'][_0x85be('0x48')](_0xb90f50);})[_0x85be('0x28')](function(_0x5627a3){_0x59dc44[_0x85be('0x49')]=_0x5627a3;return _0x59dc44;})[_0x85be('0x28')](respondWithFilteredResult(_0x159141,_0xb90f50))[_0x85be('0x4a')](handleError(_0x159141,null));};exports[_0x85be('0x4b')]=function(_0x40ad50,_0x39b478){var _0x1cdac8={'raw':!![],'where':{'id':_0x40ad50[_0x85be('0x4c')]['id']}},_0x1214a7={};_0x1214a7['model']=_['keys'](db[_0x85be('0x32')]['rawAttributes']);_0x1214a7['query']=_['keys'](_0x40ad50[_0x85be('0x38')]);_0x1214a7[_0x85be('0x3a')]=_[_0x85be('0x3b')](_0x1214a7[_0x85be('0x37')],_0x1214a7['query']);_0x1cdac8[_0x85be('0x3c')]=_[_0x85be('0x3b')](_0x1214a7['model'],qs[_0x85be('0x3d')](_0x40ad50['query'][_0x85be('0x3d')]));_0x1cdac8[_0x85be('0x3c')]=_0x1cdac8[_0x85be('0x3c')]['length']?_0x1cdac8[_0x85be('0x3c')]:_0x1214a7[_0x85be('0x37')];if(_0x40ad50[_0x85be('0x38')][_0x85be('0x46')]){_0x1cdac8['include']=[{'all':!![]}];}_0x1cdac8=_[_0x85be('0x43')]({},_0x1cdac8,_0x40ad50[_0x85be('0x45')]);return db[_0x85be('0x32')][_0x85be('0x4d')](_0x1cdac8)['then'](handleEntityNotFound(_0x39b478,null))[_0x85be('0x28')](respondWithResult(_0x39b478,null))['catch'](handleError(_0x39b478,null));};exports[_0x85be('0x4e')]=function(_0x22fd8c,_0x2bd9c5){return db[_0x85be('0x32')][_0x85be('0x4e')](_0x22fd8c['body'],{})[_0x85be('0x28')](function(_0x486ca5){var _0x2c3174=_0x22fd8c[_0x85be('0x4f')]['get']({'plain':!![]});if(!_0x2c3174)throw new Error(_0x85be('0x50'));if(_0x2c3174[_0x85be('0x51')]===_0x85be('0x4f')){var _0x315df6=_0x486ca5[_0x85be('0x2a')]({'plain':!![]});var _0x5c0891=_0x85be('0x2b');return db[_0x85be('0x52')][_0x85be('0x4d')]({'where':{'name':_0x5c0891,'userProfileId':_0x2c3174[_0x85be('0x53')]},'raw':!![]})[_0x85be('0x28')](function(_0x274b81){if(_0x274b81&&_0x274b81[_0x85be('0x54')]===0x0){return db[_0x85be('0x2c')][_0x85be('0x4e')]({'name':_0x315df6[_0x85be('0x2e')],'resourceId':_0x315df6['id'],'type':_0x274b81[_0x85be('0x2e')],'sectionId':_0x274b81['id']},{})[_0x85be('0x28')](function(){return _0x486ca5;});}else{return _0x486ca5;}})[_0x85be('0x4a')](function(_0x4affad){logger[_0x85be('0x55')](_0x85be('0x56'),_0x4affad);throw _0x4affad;});}return _0x486ca5;})[_0x85be('0x28')](respondWithResult(_0x2bd9c5,0xc9))['catch'](handleError(_0x2bd9c5,null));};exports['update']=function(_0x2c28ad,_0xbd8f32){if(_0x2c28ad['body']['id']){delete _0x2c28ad[_0x85be('0x57')]['id'];}return db[_0x85be('0x32')][_0x85be('0x4d')]({'where':{'id':_0x2c28ad[_0x85be('0x4c')]['id']}})[_0x85be('0x28')](handleEntityNotFound(_0xbd8f32,null))['then'](saveUpdates(_0x2c28ad[_0x85be('0x57')],null))[_0x85be('0x28')](respondWithResult(_0xbd8f32,null))[_0x85be('0x4a')](handleError(_0xbd8f32,null));};exports[_0x85be('0x29')]=function(_0x4b61a9,_0x55ee6d){return db[_0x85be('0x32')]['find']({'where':{'id':_0x4b61a9['params']['id']}})[_0x85be('0x28')](handleEntityNotFound(_0x55ee6d,null))[_0x85be('0x28')](removeEntity(_0x55ee6d,null))[_0x85be('0x4a')](handleError(_0x55ee6d,null));};exports['addInterval']=function(_0x83a55b,_0x5cd1fb,_0x1fe1a6){if(_0x83a55b[_0x85be('0x57')]['id']){delete _0x83a55b[_0x85be('0x57')]['id'];}return db[_0x85be('0x32')]['find']({'where':{'id':_0x83a55b['params']['id']}})[_0x85be('0x28')](handleEntityNotFound(_0x5cd1fb,null))[_0x85be('0x28')](function(_0x6ee711){if(_0x6ee711){_0x83a55b[_0x85be('0x57')][_0x85be('0x58')]=_0x6ee711['id'];return db[_0x85be('0x32')]['create'](_0x83a55b['body']);}})[_0x85be('0x28')](respondWithResult(_0x5cd1fb,null))[_0x85be('0x4a')](handleError(_0x5cd1fb,null));};exports[_0x85be('0x59')]=function(_0x51d12f,_0x258c8d,_0x1244fc){var _0x6daba1={};var _0x27b539={};var _0x18c8e2;var _0x148439;return db[_0x85be('0x32')][_0x85be('0x5a')]({'where':{'id':_0x51d12f[_0x85be('0x4c')]['id']}})['then'](handleEntityNotFound(_0x258c8d,null))[_0x85be('0x28')](function(_0x301a8d){if(_0x301a8d){_0x18c8e2=_0x301a8d;_0x27b539[_0x85be('0x37')]=_[_0x85be('0x39')](db['Interval'][_0x85be('0x33')]);_0x27b539[_0x85be('0x38')]=_[_0x85be('0x39')](_0x51d12f[_0x85be('0x38')]);_0x27b539[_0x85be('0x3a')]=_[_0x85be('0x3b')](_0x27b539[_0x85be('0x37')],_0x27b539[_0x85be('0x38')]);_0x6daba1[_0x85be('0x3c')]=_['intersection'](_0x27b539[_0x85be('0x37')],qs[_0x85be('0x3d')](_0x51d12f[_0x85be('0x38')][_0x85be('0x3d')]));_0x6daba1[_0x85be('0x3c')]=_0x6daba1[_0x85be('0x3c')][_0x85be('0x5b')]?_0x6daba1['attributes']:_0x27b539['model'];_0x6daba1[_0x85be('0x5c')]=qs[_0x85be('0x40')](_0x51d12f[_0x85be('0x38')][_0x85be('0x40')]);_0x6daba1[_0x85be('0x41')]=qs[_0x85be('0x3a')](_['pick'](_0x51d12f[_0x85be('0x38')],_0x27b539[_0x85be('0x3a')]));if(_0x51d12f[_0x85be('0x38')]['filter']){_0x6daba1[_0x85be('0x41')]=_['merge'](_0x6daba1[_0x85be('0x41')],{'$or':_[_0x85be('0x31')](_0x6daba1[_0x85be('0x3c')],function(_0x13f84f){var _0x367972={};_0x367972[_0x13f84f]={'$like':'%'+_0x51d12f[_0x85be('0x38')]['filter']+'%'};return _0x367972;})});}_0x6daba1=_['merge']({},_0x6daba1,_0x51d12f[_0x85be('0x45')]);return _0x18c8e2['getIntervals'](_0x6daba1);}})[_0x85be('0x28')](function(_0x3028a){if(_0x3028a){_0x148439=_0x3028a[_0x85be('0x5b')];if(!_0x51d12f[_0x85be('0x38')][_0x85be('0x3e')](_0x85be('0x3f'))){_0x6daba1[_0x85be('0x22')]=qs[_0x85be('0x22')](_0x51d12f[_0x85be('0x38')]['limit']);_0x6daba1[_0x85be('0x20')]=qs[_0x85be('0x20')](_0x51d12f[_0x85be('0x38')][_0x85be('0x20')]);}return _0x18c8e2[_0x85be('0x59')](_0x6daba1);}})[_0x85be('0x28')](function(_0x2440d8){if(_0x2440d8){return _0x2440d8?{'count':_0x148439,'rows':_0x2440d8}:null;}})['then'](respondWithResult(_0x258c8d,null))[_0x85be('0x4a')](handleError(_0x258c8d,null));};exports[_0x85be('0x5d')]=function(_0x20e64d,_0x55180e,_0x2eaed7){return db[_0x85be('0x32')][_0x85be('0x5a')]({'where':{'id':_0x20e64d[_0x85be('0x4c')]['id']}})[_0x85be('0x28')](handleEntityNotFound(_0x55180e,null))['then'](function(_0x1e200b){if(_0x1e200b){return db['sequelize'][_0x85be('0x5e')](function(_0x23b51c){return db[_0x85be('0x32')][_0x85be('0x29')]({'where':{'IntervalId':_0x20e64d[_0x85be('0x4c')]['id']},'transaction':_0x23b51c})[_0x85be('0x28')](function(_0x772c3d){var _0x43517a=_[_0x85be('0x31')](_0x20e64d[_0x85be('0x57')],function(_0x28c2cd){delete _0x28c2cd['id'];_0x28c2cd[_0x85be('0x58')]=_0x20e64d[_0x85be('0x4c')]['id'];return _0x28c2cd;});return db[_0x85be('0x32')][_0x85be('0x5f')](_0x43517a,{'transaction':_0x23b51c});});})[_0x85be('0x28')](function(){return db[_0x85be('0x32')][_0x85be('0x48')]({'where':{'IntervalId':_0x20e64d[_0x85be('0x4c')]['id']}});});}})[_0x85be('0x28')](respondWithResult(_0x55180e,null))[_0x85be('0x4a')](handleError(_0x55180e,null));};