e916188b3753396dda58e0185de5f722f32cf907
[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 _0x4951=['user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','IntervalId','getIntervals','findOne','addIntervals','transaction','bulkCreate','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../components/extensions/rewrite','sendStatus','status','end','json','offset','undefined','limit','count','apply','save','update','then','destroy','get','Intervals','UserProfileResource','error','stack','name','send','index','Interval','rawAttributes','fieldName','model','map','query','keys','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','include','findAll','rows','catch','show','includeAll','find','create','body'];(function(_0x421791,_0x3625d8){var _0x495838=function(_0x5190c3){while(--_0x5190c3){_0x421791['push'](_0x421791['shift']());}};_0x495838(++_0x3625d8);}(_0x4951,0x169));var _0x1495=function(_0x4bcddd,_0x26a897){_0x4bcddd=_0x4bcddd-0x0;var _0x5d4fd7=_0x4951[_0x4bcddd];return _0x5d4fd7;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x1495('0x0'));var zipdir=require(_0x1495('0x1'));var jsonpatch=require(_0x1495('0x2'));var rp=require(_0x1495('0x3'));var moment=require(_0x1495('0x4'));var BPromise=require(_0x1495('0x5'));var Mustache=require('mustache');var util=require(_0x1495('0x6'));var path=require('path');var sox=require('sox');var csv=require(_0x1495('0x7'));var ejs=require(_0x1495('0x8'));var fs=require('fs');var fs_extra=require(_0x1495('0x9'));var _=require('lodash');var squel=require(_0x1495('0xa'));var crypto=require(_0x1495('0xb'));var jsforce=require(_0x1495('0xc'));var deskjs=require(_0x1495('0xd'));var toCsv=require(_0x1495('0x7'));var querystring=require(_0x1495('0xe'));var Papa=require('papaparse');var Redis=require(_0x1495('0xf'));var authService=require(_0x1495('0x10'));var qs=require(_0x1495('0x11'));var as=require(_0x1495('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x1495('0x13'))('api');var utils=require(_0x1495('0x14'));var config=require(_0x1495('0x15'));var licenseUtil=require(_0x1495('0x16'));var db=require('../../mysqldb')['db'];var extensions=require(_0x1495('0x17'));function respondWithStatusCode(_0x9b4892,_0xffb92){_0xffb92=_0xffb92||0xcc;return function(_0x577e64){if(_0x577e64){return _0x9b4892[_0x1495('0x18')](_0xffb92);}return _0x9b4892[_0x1495('0x19')](_0xffb92)[_0x1495('0x1a')]();};}function respondWithResult(_0x5442f4,_0x4b65b8){_0x4b65b8=_0x4b65b8||0xc8;return function(_0x22f388){if(_0x22f388){return _0x5442f4['status'](_0x4b65b8)[_0x1495('0x1b')](_0x22f388);}};}function respondWithFilteredResult(_0x2048f0,_0x2621da){return function(_0x46e6bd){if(_0x46e6bd){var _0x58c5f3=typeof _0x2621da[_0x1495('0x1c')]===_0x1495('0x1d')&&typeof _0x2621da[_0x1495('0x1e')]==='undefined';var _0x5545bb=_0x46e6bd[_0x1495('0x1f')];var _0x4bd2c0=_0x58c5f3?0x0:_0x2621da[_0x1495('0x1c')];var _0x4d4495=_0x58c5f3?_0x46e6bd[_0x1495('0x1f')]:_0x2621da[_0x1495('0x1c')]+_0x2621da[_0x1495('0x1e')];var _0xff2fd6;if(_0x4d4495>=_0x5545bb){_0x4d4495=_0x5545bb;_0xff2fd6=0xc8;}else{_0xff2fd6=0xce;}_0x2048f0[_0x1495('0x19')](_0xff2fd6);return _0x2048f0['set']('Content-Range',_0x4bd2c0+'-'+_0x4d4495+'/'+_0x5545bb)['json'](_0x46e6bd);}return null;};}function patchUpdates(_0x31c4e0){return function(_0xb2961e){try{jsonpatch[_0x1495('0x20')](_0xb2961e,_0x31c4e0,!![]);}catch(_0x4a1ce8){return BPromise['reject'](_0x4a1ce8);}return _0xb2961e[_0x1495('0x21')]();};}function saveUpdates(_0x2831a7,_0x3572cb){return function(_0x3f27e1){if(_0x3f27e1){return _0x3f27e1[_0x1495('0x22')](_0x2831a7)[_0x1495('0x23')](function(_0x432289){return _0x432289;});}return null;};}function removeEntity(_0x3b5fa5,_0x5b8d86){return function(_0x1cd69d){if(_0x1cd69d){return _0x1cd69d[_0x1495('0x24')]()[_0x1495('0x23')](function(){var _0x5bba59=_0x1cd69d[_0x1495('0x25')]({'plain':!![]});var _0xa85e4b=_0x1495('0x26');return db[_0x1495('0x27')][_0x1495('0x24')]({'where':{'type':_0xa85e4b,'resourceId':_0x5bba59['id']}})['then'](function(){return _0x1cd69d;});})['then'](function(){_0x3b5fa5['status'](0xcc)[_0x1495('0x1a')]();});}};}function handleEntityNotFound(_0x5be711,_0x507832){return function(_0x32e55c){if(!_0x32e55c){_0x5be711['sendStatus'](0x194);}return _0x32e55c;};}function handleError(_0x54497a,_0x47a0be){_0x47a0be=_0x47a0be||0x1f4;return function(_0x295e5e){logger[_0x1495('0x28')](_0x295e5e[_0x1495('0x29')]);if(_0x295e5e[_0x1495('0x2a')]){delete _0x295e5e[_0x1495('0x2a')];}_0x54497a[_0x1495('0x19')](_0x47a0be)[_0x1495('0x2b')](_0x295e5e);};}exports[_0x1495('0x2c')]=function(_0x442791,_0x4924d8){var _0xadda4e={},_0x43a6f6={},_0x381fdc={'count':0x0,'rows':[]};var _0x12b154=_['map'](db[_0x1495('0x2d')][_0x1495('0x2e')],function(_0x1c8a3a){return{'name':_0x1c8a3a[_0x1495('0x2f')],'type':_0x1c8a3a['type']['key']};});_0x43a6f6[_0x1495('0x30')]=_[_0x1495('0x31')](_0x12b154,_0x1495('0x2a'));_0x43a6f6[_0x1495('0x32')]=_[_0x1495('0x33')](_0x442791[_0x1495('0x32')]);_0x43a6f6[_0x1495('0x34')]=_['intersection'](_0x43a6f6[_0x1495('0x30')],_0x43a6f6[_0x1495('0x32')]);_0xadda4e[_0x1495('0x35')]=_[_0x1495('0x36')](_0x43a6f6[_0x1495('0x30')],qs[_0x1495('0x37')](_0x442791['query'][_0x1495('0x37')]));_0xadda4e['attributes']=_0xadda4e[_0x1495('0x35')][_0x1495('0x38')]?_0xadda4e['attributes']:_0x43a6f6[_0x1495('0x30')];if(!_0x442791['query'][_0x1495('0x39')](_0x1495('0x3a'))){_0xadda4e['limit']=qs[_0x1495('0x1e')](_0x442791['query']['limit']);_0xadda4e[_0x1495('0x1c')]=qs[_0x1495('0x1c')](_0x442791[_0x1495('0x32')][_0x1495('0x1c')]);}_0xadda4e[_0x1495('0x3b')]=qs[_0x1495('0x3c')](_0x442791[_0x1495('0x32')][_0x1495('0x3c')]);_0xadda4e[_0x1495('0x3d')]=qs[_0x1495('0x34')](_[_0x1495('0x3e')](_0x442791[_0x1495('0x32')],_0x43a6f6['filters']),_0x12b154);if(_0x442791[_0x1495('0x32')][_0x1495('0x3f')]){_0xadda4e['where']=_[_0x1495('0x40')](_0xadda4e['where'],{'$or':_[_0x1495('0x31')](_0x12b154,function(_0x3a6a7d){if(_0x3a6a7d['type']!=='VIRTUAL'){var _0x264327={};_0x264327[_0x3a6a7d['name']]={'$like':'%'+_0x442791[_0x1495('0x32')][_0x1495('0x3f')]+'%'};return _0x264327;}})});}_0xadda4e=_['merge']({},_0xadda4e,_0x442791['options']);var _0x2beab2={'where':_0xadda4e[_0x1495('0x3d')]};return db['Interval'][_0x1495('0x1f')](_0x2beab2)[_0x1495('0x23')](function(_0x4f278b){_0x381fdc[_0x1495('0x1f')]=_0x4f278b;if(_0x442791[_0x1495('0x32')]['includeAll']){_0xadda4e[_0x1495('0x41')]=[{'all':!![]}];}return db['Interval'][_0x1495('0x42')](_0xadda4e);})[_0x1495('0x23')](function(_0xe63733){_0x381fdc[_0x1495('0x43')]=_0xe63733;return _0x381fdc;})[_0x1495('0x23')](respondWithFilteredResult(_0x4924d8,_0xadda4e))[_0x1495('0x44')](handleError(_0x4924d8,null));};exports[_0x1495('0x45')]=function(_0x467fad,_0x3d05e7){var _0x49ac2a={'raw':!![],'where':{'id':_0x467fad['params']['id']}},_0x483399={};_0x483399[_0x1495('0x30')]=_[_0x1495('0x33')](db[_0x1495('0x2d')]['rawAttributes']);_0x483399[_0x1495('0x32')]=_[_0x1495('0x33')](_0x467fad[_0x1495('0x32')]);_0x483399['filters']=_[_0x1495('0x36')](_0x483399[_0x1495('0x30')],_0x483399['query']);_0x49ac2a[_0x1495('0x35')]=_[_0x1495('0x36')](_0x483399[_0x1495('0x30')],qs[_0x1495('0x37')](_0x467fad[_0x1495('0x32')][_0x1495('0x37')]));_0x49ac2a[_0x1495('0x35')]=_0x49ac2a[_0x1495('0x35')][_0x1495('0x38')]?_0x49ac2a[_0x1495('0x35')]:_0x483399['model'];if(_0x467fad[_0x1495('0x32')][_0x1495('0x46')]){_0x49ac2a[_0x1495('0x41')]=[{'all':!![]}];}_0x49ac2a=_[_0x1495('0x40')]({},_0x49ac2a,_0x467fad['options']);return db[_0x1495('0x2d')][_0x1495('0x47')](_0x49ac2a)[_0x1495('0x23')](handleEntityNotFound(_0x3d05e7,null))[_0x1495('0x23')](respondWithResult(_0x3d05e7,null))[_0x1495('0x44')](handleError(_0x3d05e7,null));};exports[_0x1495('0x48')]=function(_0x36d57c,_0x52d77a){return db[_0x1495('0x2d')][_0x1495('0x48')](_0x36d57c[_0x1495('0x49')],{})[_0x1495('0x23')](function(_0x4b2218){var _0x3f0f91=_0x36d57c[_0x1495('0x4a')][_0x1495('0x25')]({'plain':!![]});if(!_0x3f0f91)throw new Error(_0x1495('0x4b'));if(_0x3f0f91[_0x1495('0x4c')]==='user'){var _0x477613=_0x4b2218[_0x1495('0x25')]({'plain':!![]});var _0x2dd423='Intervals';return db[_0x1495('0x4d')]['find']({'where':{'name':_0x2dd423,'userProfileId':_0x3f0f91[_0x1495('0x4e')]},'raw':!![]})[_0x1495('0x23')](function(_0x4a8a65){if(_0x4a8a65&&_0x4a8a65['autoAssociation']===0x0){return db[_0x1495('0x27')]['create']({'name':_0x477613['name'],'resourceId':_0x477613['id'],'type':_0x4a8a65[_0x1495('0x2a')],'sectionId':_0x4a8a65['id']},{})['then'](function(){return _0x4b2218;});}else{return _0x4b2218;}})[_0x1495('0x44')](function(_0x611ca5){logger[_0x1495('0x28')](_0x1495('0x4f'),_0x611ca5);throw _0x611ca5;});}return _0x4b2218;})[_0x1495('0x23')](respondWithResult(_0x52d77a,0xc9))['catch'](handleError(_0x52d77a,null));};exports[_0x1495('0x22')]=function(_0x1a0cec,_0x3bb8da){if(_0x1a0cec[_0x1495('0x49')]['id']){delete _0x1a0cec[_0x1495('0x49')]['id'];}return db[_0x1495('0x2d')]['find']({'where':{'id':_0x1a0cec['params']['id']}})[_0x1495('0x23')](handleEntityNotFound(_0x3bb8da,null))[_0x1495('0x23')](saveUpdates(_0x1a0cec['body'],null))[_0x1495('0x23')](respondWithResult(_0x3bb8da,null))['catch'](handleError(_0x3bb8da,null));};exports[_0x1495('0x24')]=function(_0x4268ae,_0x3f3122){return db[_0x1495('0x2d')][_0x1495('0x47')]({'where':{'id':_0x4268ae[_0x1495('0x50')]['id']}})[_0x1495('0x23')](handleEntityNotFound(_0x3f3122,null))['then'](removeEntity(_0x3f3122,null))[_0x1495('0x44')](handleError(_0x3f3122,null));};exports['addInterval']=function(_0x465e19,_0x4edf00,_0x385b7d){if(_0x465e19[_0x1495('0x49')]['id']){delete _0x465e19[_0x1495('0x49')]['id'];}return db[_0x1495('0x2d')][_0x1495('0x47')]({'where':{'id':_0x465e19[_0x1495('0x50')]['id']}})['then'](handleEntityNotFound(_0x4edf00,null))[_0x1495('0x23')](function(_0x4d995a){if(_0x4d995a){_0x465e19['body'][_0x1495('0x51')]=_0x4d995a['id'];return db[_0x1495('0x2d')][_0x1495('0x48')](_0x465e19[_0x1495('0x49')]);}})['then'](respondWithResult(_0x4edf00,null))[_0x1495('0x44')](handleError(_0x4edf00,null));};exports[_0x1495('0x52')]=function(_0x21668e,_0x48d060,_0x2facc2){var _0x235131={};var _0x2c3756={};var _0x2bad7e;var _0x1c9820;return db['Interval'][_0x1495('0x53')]({'where':{'id':_0x21668e[_0x1495('0x50')]['id']}})[_0x1495('0x23')](handleEntityNotFound(_0x48d060,null))[_0x1495('0x23')](function(_0x5e3508){if(_0x5e3508){_0x2bad7e=_0x5e3508;_0x2c3756['model']=_[_0x1495('0x33')](db['Interval'][_0x1495('0x2e')]);_0x2c3756[_0x1495('0x32')]=_[_0x1495('0x33')](_0x21668e[_0x1495('0x32')]);_0x2c3756[_0x1495('0x34')]=_[_0x1495('0x36')](_0x2c3756[_0x1495('0x30')],_0x2c3756['query']);_0x235131[_0x1495('0x35')]=_[_0x1495('0x36')](_0x2c3756['model'],qs[_0x1495('0x37')](_0x21668e[_0x1495('0x32')]['fields']));_0x235131['attributes']=_0x235131[_0x1495('0x35')][_0x1495('0x38')]?_0x235131['attributes']:_0x2c3756['model'];_0x235131['order']=qs[_0x1495('0x3c')](_0x21668e['query'][_0x1495('0x3c')]);_0x235131[_0x1495('0x3d')]=qs[_0x1495('0x34')](_[_0x1495('0x3e')](_0x21668e[_0x1495('0x32')],_0x2c3756[_0x1495('0x34')]));if(_0x21668e[_0x1495('0x32')][_0x1495('0x3f')]){_0x235131['where']=_['merge'](_0x235131[_0x1495('0x3d')],{'$or':_[_0x1495('0x31')](_0x235131[_0x1495('0x35')],function(_0x3d0bde){var _0x1941da={};_0x1941da[_0x3d0bde]={'$like':'%'+_0x21668e[_0x1495('0x32')][_0x1495('0x3f')]+'%'};return _0x1941da;})});}_0x235131=_['merge']({},_0x235131,_0x21668e['options']);return _0x2bad7e[_0x1495('0x52')](_0x235131);}})[_0x1495('0x23')](function(_0x4466a3){if(_0x4466a3){_0x1c9820=_0x4466a3[_0x1495('0x38')];if(!_0x21668e[_0x1495('0x32')][_0x1495('0x39')](_0x1495('0x3a'))){_0x235131['limit']=qs[_0x1495('0x1e')](_0x21668e[_0x1495('0x32')][_0x1495('0x1e')]);_0x235131['offset']=qs[_0x1495('0x1c')](_0x21668e[_0x1495('0x32')]['offset']);}return _0x2bad7e[_0x1495('0x52')](_0x235131);}})[_0x1495('0x23')](function(_0x2b9201){if(_0x2b9201){return _0x2b9201?{'count':_0x1c9820,'rows':_0x2b9201}:null;}})[_0x1495('0x23')](respondWithResult(_0x48d060,null))[_0x1495('0x44')](handleError(_0x48d060,null));};exports[_0x1495('0x54')]=function(_0xb57724,_0x1419df,_0x437b56){return db[_0x1495('0x2d')][_0x1495('0x53')]({'where':{'id':_0xb57724['params']['id']}})[_0x1495('0x23')](handleEntityNotFound(_0x1419df,null))['then'](function(_0xf5d456){if(_0xf5d456){return db['sequelize'][_0x1495('0x55')](function(_0x4a318a){return db['Interval'][_0x1495('0x24')]({'where':{'IntervalId':_0xb57724[_0x1495('0x50')]['id']},'transaction':_0x4a318a})[_0x1495('0x23')](function(_0x26da2d){var _0xcdf0d1=_[_0x1495('0x31')](_0xb57724[_0x1495('0x49')],function(_0x1f4a70){delete _0x1f4a70['id'];_0x1f4a70[_0x1495('0x51')]=_0xb57724[_0x1495('0x50')]['id'];return _0x1f4a70;});return db[_0x1495('0x2d')][_0x1495('0x56')](_0xcdf0d1,{'transaction':_0x4a318a});});})[_0x1495('0x23')](function(){return db[_0x1495('0x2d')][_0x1495('0x42')]({'where':{'IntervalId':_0xb57724[_0x1495('0x50')]['id']}});});}})[_0x1495('0x23')](respondWithResult(_0x1419df,null))[_0x1495('0x44')](handleError(_0x1419df,null));};