0699627bdcb0b205fdb0d32300e38fdf876bf87e
[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 _0x7d87=['fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','squel','jsforce','querystring','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','Content-Range','apply','reject','save','update','then','destroy','get','Intervals','UserProfileResource','error','name','send','Interval','fieldName','model','query','keys','filters','intersection','fields','attributes','nolimit','order','sort','where','merge','type','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','rawAttributes','length','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','addInterval','IntervalId','findOne','pick','filter','hasOwnProperty','getIntervals','addIntervals','sequelize','transaction','rimraf','zip-dir'];(function(_0x2efa6f,_0x27be47){var _0x940ac3=function(_0x39e230){while(--_0x39e230){_0x2efa6f['push'](_0x2efa6f['shift']());}};_0x940ac3(++_0x27be47);}(_0x7d87,0x1d9));var _0x77d8=function(_0x48776a,_0x9af593){_0x48776a=_0x48776a-0x0;var _0x5d344b=_0x7d87[_0x48776a];return _0x5d344b;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x77d8('0x0'));var zipdir=require(_0x77d8('0x1'));var jsonpatch=require(_0x77d8('0x2'));var rp=require(_0x77d8('0x3'));var moment=require(_0x77d8('0x4'));var BPromise=require(_0x77d8('0x5'));var Mustache=require(_0x77d8('0x6'));var util=require(_0x77d8('0x7'));var path=require(_0x77d8('0x8'));var sox=require(_0x77d8('0x9'));var csv=require(_0x77d8('0xa'));var ejs=require(_0x77d8('0xb'));var fs=require('fs');var fs_extra=require(_0x77d8('0xc'));var _=require('lodash');var squel=require(_0x77d8('0xd'));var crypto=require('crypto');var jsforce=require(_0x77d8('0xe'));var deskjs=require('desk.js');var toCsv=require(_0x77d8('0xa'));var querystring=require(_0x77d8('0xf'));var Papa=require('papaparse');var Redis=require(_0x77d8('0x10'));var authService=require(_0x77d8('0x11'));var qs=require(_0x77d8('0x12'));var as=require(_0x77d8('0x13'));var hardwareService=require(_0x77d8('0x14'));var logger=require(_0x77d8('0x15'))(_0x77d8('0x16'));var utils=require(_0x77d8('0x17'));var config=require(_0x77d8('0x18'));var licenseUtil=require(_0x77d8('0x19'));var db=require(_0x77d8('0x1a'))['db'];var extensions=require(_0x77d8('0x1b'));function respondWithStatusCode(_0x4b3ca6,_0x3257a8){_0x3257a8=_0x3257a8||0xcc;return function(_0x17c307){if(_0x17c307){return _0x4b3ca6[_0x77d8('0x1c')](_0x3257a8);}return _0x4b3ca6[_0x77d8('0x1d')](_0x3257a8)[_0x77d8('0x1e')]();};}function respondWithResult(_0x30c7b3,_0xf05ce6){_0xf05ce6=_0xf05ce6||0xc8;return function(_0x468885){if(_0x468885){return _0x30c7b3[_0x77d8('0x1d')](_0xf05ce6)[_0x77d8('0x1f')](_0x468885);}};}function respondWithFilteredResult(_0xa6e396,_0x42dc16){return function(_0x18bc2b){if(_0x18bc2b){var _0x1d141e=typeof _0x42dc16[_0x77d8('0x20')]===_0x77d8('0x21')&&typeof _0x42dc16[_0x77d8('0x22')]==='undefined';var _0x37f65c=_0x18bc2b[_0x77d8('0x23')];var _0x3442c4=_0x1d141e?0x0:_0x42dc16['offset'];var _0x58a36b=_0x1d141e?_0x18bc2b[_0x77d8('0x23')]:_0x42dc16[_0x77d8('0x20')]+_0x42dc16[_0x77d8('0x22')];var _0x2a09b1;if(_0x58a36b>=_0x37f65c){_0x58a36b=_0x37f65c;_0x2a09b1=0xc8;}else{_0x2a09b1=0xce;}_0xa6e396[_0x77d8('0x1d')](_0x2a09b1);return _0xa6e396[_0x77d8('0x24')](_0x77d8('0x25'),_0x3442c4+'-'+_0x58a36b+'/'+_0x37f65c)['json'](_0x18bc2b);}return null;};}function patchUpdates(_0x541c92){return function(_0xe46d0c){try{jsonpatch[_0x77d8('0x26')](_0xe46d0c,_0x541c92,!![]);}catch(_0x39fc69){return BPromise[_0x77d8('0x27')](_0x39fc69);}return _0xe46d0c[_0x77d8('0x28')]();};}function saveUpdates(_0x5258ec,_0x5cda91){return function(_0x16bd1d){if(_0x16bd1d){return _0x16bd1d[_0x77d8('0x29')](_0x5258ec)[_0x77d8('0x2a')](function(_0x200dd1){return _0x200dd1;});}return null;};}function removeEntity(_0x8398d0,_0x34a8d1){return function(_0x23739f){if(_0x23739f){return _0x23739f[_0x77d8('0x2b')]()[_0x77d8('0x2a')](function(){var _0x592cfe=_0x23739f[_0x77d8('0x2c')]({'plain':!![]});var _0x46f2f2=_0x77d8('0x2d');return db[_0x77d8('0x2e')][_0x77d8('0x2b')]({'where':{'type':_0x46f2f2,'resourceId':_0x592cfe['id']}})[_0x77d8('0x2a')](function(){return _0x23739f;});})[_0x77d8('0x2a')](function(){_0x8398d0[_0x77d8('0x1d')](0xcc)[_0x77d8('0x1e')]();});}};}function handleEntityNotFound(_0x416599,_0x168353){return function(_0x8659d8){if(!_0x8659d8){_0x416599[_0x77d8('0x1c')](0x194);}return _0x8659d8;};}function handleError(_0x46657b,_0x2c96a4){_0x2c96a4=_0x2c96a4||0x1f4;return function(_0x1c197c){logger[_0x77d8('0x2f')](_0x1c197c['stack']);if(_0x1c197c[_0x77d8('0x30')]){delete _0x1c197c[_0x77d8('0x30')];}_0x46657b[_0x77d8('0x1d')](_0x2c96a4)[_0x77d8('0x31')](_0x1c197c);};}exports['index']=function(_0x5f095d,_0x3738e6){var _0x246b1d={},_0x159b80={},_0x1eea58={'count':0x0,'rows':[]};var _0x2d0db3=_['map'](db[_0x77d8('0x32')]['rawAttributes'],function(_0x1b088e){return{'name':_0x1b088e[_0x77d8('0x33')],'type':_0x1b088e['type']['key']};});_0x159b80[_0x77d8('0x34')]=_['map'](_0x2d0db3,_0x77d8('0x30'));_0x159b80[_0x77d8('0x35')]=_[_0x77d8('0x36')](_0x5f095d[_0x77d8('0x35')]);_0x159b80[_0x77d8('0x37')]=_[_0x77d8('0x38')](_0x159b80[_0x77d8('0x34')],_0x159b80[_0x77d8('0x35')]);_0x246b1d['attributes']=_[_0x77d8('0x38')](_0x159b80[_0x77d8('0x34')],qs[_0x77d8('0x39')](_0x5f095d[_0x77d8('0x35')][_0x77d8('0x39')]));_0x246b1d[_0x77d8('0x3a')]=_0x246b1d[_0x77d8('0x3a')]['length']?_0x246b1d[_0x77d8('0x3a')]:_0x159b80[_0x77d8('0x34')];if(!_0x5f095d['query']['hasOwnProperty'](_0x77d8('0x3b'))){_0x246b1d[_0x77d8('0x22')]=qs['limit'](_0x5f095d['query'][_0x77d8('0x22')]);_0x246b1d[_0x77d8('0x20')]=qs['offset'](_0x5f095d[_0x77d8('0x35')]['offset']);}_0x246b1d[_0x77d8('0x3c')]=qs['sort'](_0x5f095d[_0x77d8('0x35')][_0x77d8('0x3d')]);_0x246b1d[_0x77d8('0x3e')]=qs['filters'](_['pick'](_0x5f095d[_0x77d8('0x35')],_0x159b80[_0x77d8('0x37')]),_0x2d0db3);if(_0x5f095d[_0x77d8('0x35')]['filter']){_0x246b1d[_0x77d8('0x3e')]=_[_0x77d8('0x3f')](_0x246b1d[_0x77d8('0x3e')],{'$or':_['map'](_0x2d0db3,function(_0x372ab0){if(_0x372ab0[_0x77d8('0x40')]!==_0x77d8('0x41')){var _0x126c40={};_0x126c40[_0x372ab0[_0x77d8('0x30')]]={'$like':'%'+_0x5f095d['query']['filter']+'%'};return _0x126c40;}})});}_0x246b1d=_['merge']({},_0x246b1d,_0x5f095d[_0x77d8('0x42')]);var _0x25b552={'where':_0x246b1d[_0x77d8('0x3e')]};return db[_0x77d8('0x32')][_0x77d8('0x23')](_0x25b552)[_0x77d8('0x2a')](function(_0x169a57){_0x1eea58[_0x77d8('0x23')]=_0x169a57;if(_0x5f095d[_0x77d8('0x35')][_0x77d8('0x43')]){_0x246b1d[_0x77d8('0x44')]=[{'all':!![]}];}return db[_0x77d8('0x32')][_0x77d8('0x45')](_0x246b1d);})[_0x77d8('0x2a')](function(_0x164da4){_0x1eea58[_0x77d8('0x46')]=_0x164da4;return _0x1eea58;})['then'](respondWithFilteredResult(_0x3738e6,_0x246b1d))[_0x77d8('0x47')](handleError(_0x3738e6,null));};exports[_0x77d8('0x48')]=function(_0x27ba68,_0x545f17){var _0x56484b={'raw':!![],'where':{'id':_0x27ba68[_0x77d8('0x49')]['id']}},_0x44e2bc={};_0x44e2bc['model']=_[_0x77d8('0x36')](db[_0x77d8('0x32')][_0x77d8('0x4a')]);_0x44e2bc[_0x77d8('0x35')]=_[_0x77d8('0x36')](_0x27ba68[_0x77d8('0x35')]);_0x44e2bc['filters']=_['intersection'](_0x44e2bc[_0x77d8('0x34')],_0x44e2bc[_0x77d8('0x35')]);_0x56484b[_0x77d8('0x3a')]=_[_0x77d8('0x38')](_0x44e2bc[_0x77d8('0x34')],qs[_0x77d8('0x39')](_0x27ba68[_0x77d8('0x35')][_0x77d8('0x39')]));_0x56484b[_0x77d8('0x3a')]=_0x56484b[_0x77d8('0x3a')][_0x77d8('0x4b')]?_0x56484b[_0x77d8('0x3a')]:_0x44e2bc[_0x77d8('0x34')];if(_0x27ba68[_0x77d8('0x35')][_0x77d8('0x43')]){_0x56484b['include']=[{'all':!![]}];}_0x56484b=_[_0x77d8('0x3f')]({},_0x56484b,_0x27ba68[_0x77d8('0x42')]);return db[_0x77d8('0x32')][_0x77d8('0x4c')](_0x56484b)[_0x77d8('0x2a')](handleEntityNotFound(_0x545f17,null))['then'](respondWithResult(_0x545f17,null))[_0x77d8('0x47')](handleError(_0x545f17,null));};exports[_0x77d8('0x4d')]=function(_0x129506,_0x4592fd){return db[_0x77d8('0x32')][_0x77d8('0x4d')](_0x129506[_0x77d8('0x4e')],{})[_0x77d8('0x2a')](function(_0x476974){var _0x52dced=_0x129506[_0x77d8('0x4f')]['get']({'plain':!![]});if(!_0x52dced)throw new Error(_0x77d8('0x50'));if(_0x52dced['role']==='user'){var _0x19911e=_0x476974[_0x77d8('0x2c')]({'plain':!![]});var _0x54306a=_0x77d8('0x2d');return db[_0x77d8('0x51')][_0x77d8('0x4c')]({'where':{'name':_0x54306a,'userProfileId':_0x52dced[_0x77d8('0x52')]},'raw':!![]})['then'](function(_0x195c1f){if(_0x195c1f&&_0x195c1f[_0x77d8('0x53')]===0x0){return db[_0x77d8('0x2e')][_0x77d8('0x4d')]({'name':_0x19911e[_0x77d8('0x30')],'resourceId':_0x19911e['id'],'type':_0x195c1f['name'],'sectionId':_0x195c1f['id']},{})['then'](function(){return _0x476974;});}else{return _0x476974;}})[_0x77d8('0x47')](function(_0x453acb){logger[_0x77d8('0x2f')](_0x77d8('0x54'),_0x453acb);throw _0x453acb;});}return _0x476974;})['then'](respondWithResult(_0x4592fd,0xc9))[_0x77d8('0x47')](handleError(_0x4592fd,null));};exports[_0x77d8('0x29')]=function(_0x5e0e38,_0x364895){if(_0x5e0e38[_0x77d8('0x4e')]['id']){delete _0x5e0e38[_0x77d8('0x4e')]['id'];}return db[_0x77d8('0x32')][_0x77d8('0x4c')]({'where':{'id':_0x5e0e38[_0x77d8('0x49')]['id']}})[_0x77d8('0x2a')](handleEntityNotFound(_0x364895,null))['then'](saveUpdates(_0x5e0e38[_0x77d8('0x4e')],null))[_0x77d8('0x2a')](respondWithResult(_0x364895,null))[_0x77d8('0x47')](handleError(_0x364895,null));};exports[_0x77d8('0x2b')]=function(_0x4ec8eb,_0x2e19dd){return db[_0x77d8('0x32')]['find']({'where':{'id':_0x4ec8eb['params']['id']}})['then'](handleEntityNotFound(_0x2e19dd,null))[_0x77d8('0x2a')](removeEntity(_0x2e19dd,null))[_0x77d8('0x47')](handleError(_0x2e19dd,null));};exports[_0x77d8('0x55')]=function(_0x4f1750,_0x430de3,_0x5c8772){if(_0x4f1750[_0x77d8('0x4e')]['id']){delete _0x4f1750[_0x77d8('0x4e')]['id'];}return db[_0x77d8('0x32')][_0x77d8('0x4c')]({'where':{'id':_0x4f1750[_0x77d8('0x49')]['id']}})['then'](handleEntityNotFound(_0x430de3,null))['then'](function(_0x6b3a83){if(_0x6b3a83){_0x4f1750[_0x77d8('0x4e')][_0x77d8('0x56')]=_0x6b3a83['id'];return db[_0x77d8('0x32')]['create'](_0x4f1750[_0x77d8('0x4e')]);}})[_0x77d8('0x2a')](respondWithResult(_0x430de3,null))[_0x77d8('0x47')](handleError(_0x430de3,null));};exports['getIntervals']=function(_0x53c95c,_0x197fa1,_0x14f46c){var _0x245b9d={};var _0x37577d={};var _0x2f52be;var _0x2fa792;return db[_0x77d8('0x32')][_0x77d8('0x57')]({'where':{'id':_0x53c95c[_0x77d8('0x49')]['id']}})[_0x77d8('0x2a')](handleEntityNotFound(_0x197fa1,null))[_0x77d8('0x2a')](function(_0x57d518){if(_0x57d518){_0x2f52be=_0x57d518;_0x37577d['model']=_[_0x77d8('0x36')](db['Interval'][_0x77d8('0x4a')]);_0x37577d[_0x77d8('0x35')]=_['keys'](_0x53c95c[_0x77d8('0x35')]);_0x37577d['filters']=_[_0x77d8('0x38')](_0x37577d[_0x77d8('0x34')],_0x37577d['query']);_0x245b9d[_0x77d8('0x3a')]=_[_0x77d8('0x38')](_0x37577d[_0x77d8('0x34')],qs[_0x77d8('0x39')](_0x53c95c['query'][_0x77d8('0x39')]));_0x245b9d[_0x77d8('0x3a')]=_0x245b9d[_0x77d8('0x3a')][_0x77d8('0x4b')]?_0x245b9d[_0x77d8('0x3a')]:_0x37577d[_0x77d8('0x34')];_0x245b9d[_0x77d8('0x3c')]=qs[_0x77d8('0x3d')](_0x53c95c[_0x77d8('0x35')][_0x77d8('0x3d')]);_0x245b9d[_0x77d8('0x3e')]=qs[_0x77d8('0x37')](_[_0x77d8('0x58')](_0x53c95c['query'],_0x37577d['filters']));if(_0x53c95c[_0x77d8('0x35')][_0x77d8('0x59')]){_0x245b9d[_0x77d8('0x3e')]=_[_0x77d8('0x3f')](_0x245b9d[_0x77d8('0x3e')],{'$or':_['map'](_0x245b9d['attributes'],function(_0x2f3972){var _0x30d34a={};_0x30d34a[_0x2f3972]={'$like':'%'+_0x53c95c['query'][_0x77d8('0x59')]+'%'};return _0x30d34a;})});}_0x245b9d=_[_0x77d8('0x3f')]({},_0x245b9d,_0x53c95c[_0x77d8('0x42')]);return _0x2f52be['getIntervals'](_0x245b9d);}})[_0x77d8('0x2a')](function(_0x53401e){if(_0x53401e){_0x2fa792=_0x53401e['length'];if(!_0x53c95c[_0x77d8('0x35')][_0x77d8('0x5a')](_0x77d8('0x3b'))){_0x245b9d[_0x77d8('0x22')]=qs[_0x77d8('0x22')](_0x53c95c[_0x77d8('0x35')][_0x77d8('0x22')]);_0x245b9d[_0x77d8('0x20')]=qs[_0x77d8('0x20')](_0x53c95c['query'][_0x77d8('0x20')]);}return _0x2f52be[_0x77d8('0x5b')](_0x245b9d);}})[_0x77d8('0x2a')](function(_0x27cfce){if(_0x27cfce){return _0x27cfce?{'count':_0x2fa792,'rows':_0x27cfce}:null;}})[_0x77d8('0x2a')](respondWithResult(_0x197fa1,null))[_0x77d8('0x47')](handleError(_0x197fa1,null));};exports[_0x77d8('0x5c')]=function(_0x1d7e38,_0xb39784,_0x5eb61e){return db[_0x77d8('0x32')][_0x77d8('0x57')]({'where':{'id':_0x1d7e38[_0x77d8('0x49')]['id']}})[_0x77d8('0x2a')](handleEntityNotFound(_0xb39784,null))['then'](function(_0x5152af){if(_0x5152af){return db[_0x77d8('0x5d')][_0x77d8('0x5e')](function(_0x4f25e4){return db[_0x77d8('0x32')][_0x77d8('0x2b')]({'where':{'IntervalId':_0x1d7e38[_0x77d8('0x49')]['id']},'transaction':_0x4f25e4})['then'](function(_0x31a57a){var _0x51742f=_['map'](_0x1d7e38[_0x77d8('0x4e')],function(_0x477bc0){delete _0x477bc0['id'];_0x477bc0[_0x77d8('0x56')]=_0x1d7e38[_0x77d8('0x49')]['id'];return _0x477bc0;});return db[_0x77d8('0x32')]['bulkCreate'](_0x51742f,{'transaction':_0x4f25e4});});})['then'](function(){return db['Interval'][_0x77d8('0x45')]({'where':{'IntervalId':_0x1d7e38[_0x77d8('0x49')]['id']}});});}})[_0x77d8('0x2a')](respondWithResult(_0xb39784,null))[_0x77d8('0x47')](handleError(_0xb39784,null));};