Built motion from commit 616d3211.|2.6.4
[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 _0x67d6=['create','update','addInterval','IntervalId','getIntervals','findOne','order','sequelize','transaction','bulkCreate','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/extensions/rewrite','sendStatus','status','end','json','offset','undefined','limit','count','set','apply','reject','save','then','destroy','get','Intervals','UserProfileResource','error','stack','name','send','index','map','Interval','rawAttributes','key','model','keys','filters','intersection','query','attributes','fields','length','hasOwnProperty','sort','where','pick','filter','merge','type','VIRTUAL','options','includeAll','include','findAll','catch','params','find','body','user','role','userProfileId'];(function(_0x2be8c2,_0x14a4b5){var _0x97f531=function(_0xcee58d){while(--_0xcee58d){_0x2be8c2['push'](_0x2be8c2['shift']());}};_0x97f531(++_0x14a4b5);}(_0x67d6,0x121));var _0x667d=function(_0x3b594b,_0x5835c3){_0x3b594b=_0x3b594b-0x0;var _0x1ea5f8=_0x67d6[_0x3b594b];return _0x1ea5f8;};'use strict';var emlformat=require(_0x667d('0x0'));var rimraf=require(_0x667d('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x667d('0x2'));var rp=require(_0x667d('0x3'));var moment=require(_0x667d('0x4'));var BPromise=require(_0x667d('0x5'));var Mustache=require(_0x667d('0x6'));var util=require(_0x667d('0x7'));var path=require(_0x667d('0x8'));var sox=require(_0x667d('0x9'));var csv=require(_0x667d('0xa'));var ejs=require(_0x667d('0xb'));var fs=require('fs');var fs_extra=require(_0x667d('0xc'));var _=require(_0x667d('0xd'));var squel=require(_0x667d('0xe'));var crypto=require('crypto');var jsforce=require(_0x667d('0xf'));var deskjs=require(_0x667d('0x10'));var toCsv=require(_0x667d('0xa'));var querystring=require('querystring');var Papa=require(_0x667d('0x11'));var Redis=require(_0x667d('0x12'));var authService=require(_0x667d('0x13'));var qs=require(_0x667d('0x14'));var as=require(_0x667d('0x15'));var hardwareService=require(_0x667d('0x16'));var logger=require(_0x667d('0x17'))(_0x667d('0x18'));var utils=require(_0x667d('0x19'));var config=require(_0x667d('0x1a'));var licenseUtil=require(_0x667d('0x1b'));var db=require(_0x667d('0x1c'))['db'];var extensions=require(_0x667d('0x1d'));function respondWithStatusCode(_0x306347,_0x185580){_0x185580=_0x185580||0xcc;return function(_0x466e71){if(_0x466e71){return _0x306347[_0x667d('0x1e')](_0x185580);}return _0x306347[_0x667d('0x1f')](_0x185580)[_0x667d('0x20')]();};}function respondWithResult(_0x511ea5,_0x4619f8){_0x4619f8=_0x4619f8||0xc8;return function(_0x5c4f82){if(_0x5c4f82){return _0x511ea5[_0x667d('0x1f')](_0x4619f8)[_0x667d('0x21')](_0x5c4f82);}};}function respondWithFilteredResult(_0x1140f6,_0x4b6676){return function(_0xa9816e){if(_0xa9816e){var _0x10e1e9=typeof _0x4b6676[_0x667d('0x22')]===_0x667d('0x23')&&typeof _0x4b6676[_0x667d('0x24')]===_0x667d('0x23');var _0x180cd6=_0xa9816e[_0x667d('0x25')];var _0x579680=_0x10e1e9?0x0:_0x4b6676['offset'];var _0x590398=_0x10e1e9?_0xa9816e[_0x667d('0x25')]:_0x4b6676[_0x667d('0x22')]+_0x4b6676[_0x667d('0x24')];var _0x5b9bcd;if(_0x590398>=_0x180cd6){_0x590398=_0x180cd6;_0x5b9bcd=0xc8;}else{_0x5b9bcd=0xce;}_0x1140f6[_0x667d('0x1f')](_0x5b9bcd);return _0x1140f6[_0x667d('0x26')]('Content-Range',_0x579680+'-'+_0x590398+'/'+_0x180cd6)['json'](_0xa9816e);}return null;};}function patchUpdates(_0x1e02d9){return function(_0x3d1d24){try{jsonpatch[_0x667d('0x27')](_0x3d1d24,_0x1e02d9,!![]);}catch(_0x46defa){return BPromise[_0x667d('0x28')](_0x46defa);}return _0x3d1d24[_0x667d('0x29')]();};}function saveUpdates(_0x38b3fd,_0x5e394e){return function(_0x368b54){if(_0x368b54){return _0x368b54['update'](_0x38b3fd)[_0x667d('0x2a')](function(_0x287630){return _0x287630;});}return null;};}function removeEntity(_0x369f2e,_0x593d39){return function(_0x17b8f2){if(_0x17b8f2){return _0x17b8f2[_0x667d('0x2b')]()[_0x667d('0x2a')](function(){var _0x378be0=_0x17b8f2[_0x667d('0x2c')]({'plain':!![]});var _0x80969e=_0x667d('0x2d');return db[_0x667d('0x2e')][_0x667d('0x2b')]({'where':{'type':_0x80969e,'resourceId':_0x378be0['id']}})['then'](function(){return _0x17b8f2;});})[_0x667d('0x2a')](function(){_0x369f2e[_0x667d('0x1f')](0xcc)[_0x667d('0x20')]();});}};}function handleEntityNotFound(_0x15bbce,_0x5320db){return function(_0x19239e){if(!_0x19239e){_0x15bbce[_0x667d('0x1e')](0x194);}return _0x19239e;};}function handleError(_0x1c8d57,_0x462694){_0x462694=_0x462694||0x1f4;return function(_0x40ec60){logger[_0x667d('0x2f')](_0x40ec60[_0x667d('0x30')]);if(_0x40ec60[_0x667d('0x31')]){delete _0x40ec60[_0x667d('0x31')];}_0x1c8d57[_0x667d('0x1f')](_0x462694)[_0x667d('0x32')](_0x40ec60);};}exports[_0x667d('0x33')]=function(_0xc49e54,_0x49c4db){var _0xa8e13a={},_0x129092={},_0x187990={'count':0x0,'rows':[]};var _0x3b3b0d=_[_0x667d('0x34')](db[_0x667d('0x35')][_0x667d('0x36')],function(_0xa9ef44){return{'name':_0xa9ef44['fieldName'],'type':_0xa9ef44['type'][_0x667d('0x37')]};});_0x129092[_0x667d('0x38')]=_['map'](_0x3b3b0d,_0x667d('0x31'));_0x129092['query']=_[_0x667d('0x39')](_0xc49e54['query']);_0x129092[_0x667d('0x3a')]=_[_0x667d('0x3b')](_0x129092[_0x667d('0x38')],_0x129092[_0x667d('0x3c')]);_0xa8e13a[_0x667d('0x3d')]=_[_0x667d('0x3b')](_0x129092[_0x667d('0x38')],qs[_0x667d('0x3e')](_0xc49e54[_0x667d('0x3c')]['fields']));_0xa8e13a[_0x667d('0x3d')]=_0xa8e13a[_0x667d('0x3d')][_0x667d('0x3f')]?_0xa8e13a['attributes']:_0x129092[_0x667d('0x38')];if(!_0xc49e54['query'][_0x667d('0x40')]('nolimit')){_0xa8e13a['limit']=qs['limit'](_0xc49e54[_0x667d('0x3c')]['limit']);_0xa8e13a[_0x667d('0x22')]=qs[_0x667d('0x22')](_0xc49e54[_0x667d('0x3c')][_0x667d('0x22')]);}_0xa8e13a['order']=qs['sort'](_0xc49e54[_0x667d('0x3c')][_0x667d('0x41')]);_0xa8e13a[_0x667d('0x42')]=qs[_0x667d('0x3a')](_[_0x667d('0x43')](_0xc49e54[_0x667d('0x3c')],_0x129092['filters']),_0x3b3b0d);if(_0xc49e54[_0x667d('0x3c')][_0x667d('0x44')]){_0xa8e13a[_0x667d('0x42')]=_[_0x667d('0x45')](_0xa8e13a[_0x667d('0x42')],{'$or':_['map'](_0x3b3b0d,function(_0x488b93){if(_0x488b93[_0x667d('0x46')]!==_0x667d('0x47')){var _0x9fa245={};_0x9fa245[_0x488b93[_0x667d('0x31')]]={'$like':'%'+_0xc49e54[_0x667d('0x3c')][_0x667d('0x44')]+'%'};return _0x9fa245;}})});}_0xa8e13a=_['merge']({},_0xa8e13a,_0xc49e54[_0x667d('0x48')]);var _0x4abcd7={'where':_0xa8e13a[_0x667d('0x42')]};return db[_0x667d('0x35')][_0x667d('0x25')](_0x4abcd7)['then'](function(_0x277c29){_0x187990[_0x667d('0x25')]=_0x277c29;if(_0xc49e54[_0x667d('0x3c')][_0x667d('0x49')]){_0xa8e13a[_0x667d('0x4a')]=[{'all':!![]}];}return db[_0x667d('0x35')][_0x667d('0x4b')](_0xa8e13a);})[_0x667d('0x2a')](function(_0x3faa72){_0x187990['rows']=_0x3faa72;return _0x187990;})['then'](respondWithFilteredResult(_0x49c4db,_0xa8e13a))[_0x667d('0x4c')](handleError(_0x49c4db,null));};exports['show']=function(_0x357548,_0x5164ff){var _0x522117={'raw':!![],'where':{'id':_0x357548[_0x667d('0x4d')]['id']}},_0x42581f={};_0x42581f['model']=_[_0x667d('0x39')](db[_0x667d('0x35')]['rawAttributes']);_0x42581f[_0x667d('0x3c')]=_[_0x667d('0x39')](_0x357548[_0x667d('0x3c')]);_0x42581f[_0x667d('0x3a')]=_[_0x667d('0x3b')](_0x42581f[_0x667d('0x38')],_0x42581f[_0x667d('0x3c')]);_0x522117[_0x667d('0x3d')]=_[_0x667d('0x3b')](_0x42581f[_0x667d('0x38')],qs[_0x667d('0x3e')](_0x357548['query'][_0x667d('0x3e')]));_0x522117[_0x667d('0x3d')]=_0x522117[_0x667d('0x3d')]['length']?_0x522117['attributes']:_0x42581f[_0x667d('0x38')];if(_0x357548[_0x667d('0x3c')][_0x667d('0x49')]){_0x522117[_0x667d('0x4a')]=[{'all':!![]}];}_0x522117=_[_0x667d('0x45')]({},_0x522117,_0x357548[_0x667d('0x48')]);return db[_0x667d('0x35')][_0x667d('0x4e')](_0x522117)[_0x667d('0x2a')](handleEntityNotFound(_0x5164ff,null))[_0x667d('0x2a')](respondWithResult(_0x5164ff,null))[_0x667d('0x4c')](handleError(_0x5164ff,null));};exports['create']=function(_0x15a892,_0x43ee8f){return db[_0x667d('0x35')]['create'](_0x15a892[_0x667d('0x4f')],{})[_0x667d('0x2a')](function(_0x5b1677){var _0x353c0c=_0x15a892[_0x667d('0x50')]['get']({'plain':!![]});if(!_0x353c0c)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x353c0c[_0x667d('0x51')]===_0x667d('0x50')){var _0x709de=_0x5b1677[_0x667d('0x2c')]({'plain':!![]});var _0x216a4f=_0x667d('0x2d');return db['UserProfileSection'][_0x667d('0x4e')]({'where':{'name':_0x216a4f,'userProfileId':_0x353c0c[_0x667d('0x52')]},'raw':!![]})[_0x667d('0x2a')](function(_0x17e39c){if(_0x17e39c&&_0x17e39c['autoAssociation']===0x0){return db[_0x667d('0x2e')][_0x667d('0x53')]({'name':_0x709de[_0x667d('0x31')],'resourceId':_0x709de['id'],'type':_0x17e39c[_0x667d('0x31')],'sectionId':_0x17e39c['id']},{})['then'](function(){return _0x5b1677;});}else{return _0x5b1677;}})[_0x667d('0x4c')](function(_0x6552bc){logger[_0x667d('0x2f')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x6552bc);throw _0x6552bc;});}return _0x5b1677;})[_0x667d('0x2a')](respondWithResult(_0x43ee8f,0xc9))[_0x667d('0x4c')](handleError(_0x43ee8f,null));};exports[_0x667d('0x54')]=function(_0xcf18f3,_0x4dd64f){if(_0xcf18f3[_0x667d('0x4f')]['id']){delete _0xcf18f3[_0x667d('0x4f')]['id'];}return db[_0x667d('0x35')][_0x667d('0x4e')]({'where':{'id':_0xcf18f3[_0x667d('0x4d')]['id']}})[_0x667d('0x2a')](handleEntityNotFound(_0x4dd64f,null))[_0x667d('0x2a')](saveUpdates(_0xcf18f3[_0x667d('0x4f')],null))[_0x667d('0x2a')](respondWithResult(_0x4dd64f,null))[_0x667d('0x4c')](handleError(_0x4dd64f,null));};exports[_0x667d('0x2b')]=function(_0x35d63e,_0x4da2c6){return db[_0x667d('0x35')]['find']({'where':{'id':_0x35d63e[_0x667d('0x4d')]['id']}})[_0x667d('0x2a')](handleEntityNotFound(_0x4da2c6,null))[_0x667d('0x2a')](removeEntity(_0x4da2c6,null))[_0x667d('0x4c')](handleError(_0x4da2c6,null));};exports[_0x667d('0x55')]=function(_0x281f3a,_0x3bb29f,_0x561b97){if(_0x281f3a['body']['id']){delete _0x281f3a[_0x667d('0x4f')]['id'];}return db[_0x667d('0x35')][_0x667d('0x4e')]({'where':{'id':_0x281f3a[_0x667d('0x4d')]['id']}})['then'](handleEntityNotFound(_0x3bb29f,null))[_0x667d('0x2a')](function(_0x1b1fdd){if(_0x1b1fdd){_0x281f3a[_0x667d('0x4f')][_0x667d('0x56')]=_0x1b1fdd['id'];return db['Interval']['create'](_0x281f3a['body']);}})[_0x667d('0x2a')](respondWithResult(_0x3bb29f,null))[_0x667d('0x4c')](handleError(_0x3bb29f,null));};exports[_0x667d('0x57')]=function(_0x4d96cf,_0x5c70ba,_0xf4d039){var _0x5de4fe={};var _0x628a19={};var _0x4f1a15;var _0x3747c6;return db[_0x667d('0x35')][_0x667d('0x58')]({'where':{'id':_0x4d96cf['params']['id']}})[_0x667d('0x2a')](handleEntityNotFound(_0x5c70ba,null))[_0x667d('0x2a')](function(_0x28da0d){if(_0x28da0d){_0x4f1a15=_0x28da0d;_0x628a19[_0x667d('0x38')]=_[_0x667d('0x39')](db[_0x667d('0x35')][_0x667d('0x36')]);_0x628a19[_0x667d('0x3c')]=_['keys'](_0x4d96cf['query']);_0x628a19[_0x667d('0x3a')]=_[_0x667d('0x3b')](_0x628a19[_0x667d('0x38')],_0x628a19['query']);_0x5de4fe[_0x667d('0x3d')]=_[_0x667d('0x3b')](_0x628a19['model'],qs[_0x667d('0x3e')](_0x4d96cf['query'][_0x667d('0x3e')]));_0x5de4fe[_0x667d('0x3d')]=_0x5de4fe[_0x667d('0x3d')][_0x667d('0x3f')]?_0x5de4fe[_0x667d('0x3d')]:_0x628a19['model'];_0x5de4fe[_0x667d('0x59')]=qs[_0x667d('0x41')](_0x4d96cf[_0x667d('0x3c')][_0x667d('0x41')]);_0x5de4fe[_0x667d('0x42')]=qs[_0x667d('0x3a')](_[_0x667d('0x43')](_0x4d96cf[_0x667d('0x3c')],_0x628a19[_0x667d('0x3a')]));if(_0x4d96cf[_0x667d('0x3c')]['filter']){_0x5de4fe[_0x667d('0x42')]=_[_0x667d('0x45')](_0x5de4fe[_0x667d('0x42')],{'$or':_[_0x667d('0x34')](_0x5de4fe['attributes'],function(_0x5f4c13){var _0x2b7b6a={};_0x2b7b6a[_0x5f4c13]={'$like':'%'+_0x4d96cf[_0x667d('0x3c')][_0x667d('0x44')]+'%'};return _0x2b7b6a;})});}_0x5de4fe=_[_0x667d('0x45')]({},_0x5de4fe,_0x4d96cf[_0x667d('0x48')]);return _0x4f1a15[_0x667d('0x57')](_0x5de4fe);}})['then'](function(_0x327999){if(_0x327999){_0x3747c6=_0x327999[_0x667d('0x3f')];if(!_0x4d96cf[_0x667d('0x3c')][_0x667d('0x40')]('nolimit')){_0x5de4fe[_0x667d('0x24')]=qs[_0x667d('0x24')](_0x4d96cf[_0x667d('0x3c')]['limit']);_0x5de4fe[_0x667d('0x22')]=qs['offset'](_0x4d96cf[_0x667d('0x3c')][_0x667d('0x22')]);}return _0x4f1a15['getIntervals'](_0x5de4fe);}})['then'](function(_0x2b27db){if(_0x2b27db){return _0x2b27db?{'count':_0x3747c6,'rows':_0x2b27db}:null;}})[_0x667d('0x2a')](respondWithResult(_0x5c70ba,null))[_0x667d('0x4c')](handleError(_0x5c70ba,null));};exports['addIntervals']=function(_0x10a035,_0x3c41e6,_0x437871){return db[_0x667d('0x35')][_0x667d('0x58')]({'where':{'id':_0x10a035[_0x667d('0x4d')]['id']}})[_0x667d('0x2a')](handleEntityNotFound(_0x3c41e6,null))[_0x667d('0x2a')](function(_0x1fe433){if(_0x1fe433){return db[_0x667d('0x5a')][_0x667d('0x5b')](function(_0x3cb20d){return db[_0x667d('0x35')][_0x667d('0x2b')]({'where':{'IntervalId':_0x10a035[_0x667d('0x4d')]['id']},'transaction':_0x3cb20d})[_0x667d('0x2a')](function(_0x1f902e){var _0x124dfc=_[_0x667d('0x34')](_0x10a035[_0x667d('0x4f')],function(_0xb37189){delete _0xb37189['id'];_0xb37189[_0x667d('0x56')]=_0x10a035[_0x667d('0x4d')]['id'];return _0xb37189;});return db[_0x667d('0x35')][_0x667d('0x5c')](_0x124dfc,{'transaction':_0x3cb20d});});})[_0x667d('0x2a')](function(){return db[_0x667d('0x35')][_0x667d('0x4b')]({'where':{'IntervalId':_0x10a035[_0x667d('0x4d')]['id']}});});}})[_0x667d('0x2a')](respondWithResult(_0x3c41e6,null))[_0x667d('0x4c')](handleError(_0x3c41e6,null));};