6c663ab7b45c364d5e7f13bc282c2bb411e7ccb6
[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 _0x4712=['rows','catch','show','params','find','create','body','role','user','UserProfileSection','userProfileId','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','addInterval','getIntervals','nolimit','addIntervals','findOne','sequelize','transaction','IntervalId','bulkCreate','rimraf','request-promise','moment','bluebird','util','path','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','status','end','json','undefined','limit','count','offset','set','Content-Range','apply','reject','then','destroy','get','Intervals','UserProfileResource','sendStatus','stack','name','send','map','Interval','rawAttributes','fieldName','type','key','model','query','keys','intersection','fields','attributes','length','hasOwnProperty','order','sort','where','filters','pick','filter','VIRTUAL','merge','options','includeAll','include'];(function(_0x47a5bd,_0x508329){var _0x5c2184=function(_0x40ddea){while(--_0x40ddea){_0x47a5bd['push'](_0x47a5bd['shift']());}};_0x5c2184(++_0x508329);}(_0x4712,0xcc));var _0x2471=function(_0x2da866,_0x279d6e){_0x2da866=_0x2da866-0x0;var _0x4103f0=_0x4712[_0x2da866];return _0x4103f0;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x2471('0x0'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x2471('0x1'));var moment=require(_0x2471('0x2'));var BPromise=require(_0x2471('0x3'));var Mustache=require('mustache');var util=require(_0x2471('0x4'));var path=require(_0x2471('0x5'));var sox=require(_0x2471('0x6'));var csv=require(_0x2471('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x2471('0x8'));var _=require(_0x2471('0x9'));var squel=require(_0x2471('0xa'));var crypto=require(_0x2471('0xb'));var jsforce=require(_0x2471('0xc'));var deskjs=require(_0x2471('0xd'));var toCsv=require('to-csv');var querystring=require(_0x2471('0xe'));var Papa=require('papaparse');var Redis=require(_0x2471('0xf'));var authService=require(_0x2471('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0x2471('0x11'));var hardwareService=require(_0x2471('0x12'));var logger=require('../../config/logger')(_0x2471('0x13'));var utils=require(_0x2471('0x14'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];var extensions=require('../../components/extensions/rewrite');function respondWithStatusCode(_0xceef5d,_0x1cf4b5){_0x1cf4b5=_0x1cf4b5||0xcc;return function(_0x4b6151){if(_0x4b6151){return _0xceef5d['sendStatus'](_0x1cf4b5);}return _0xceef5d[_0x2471('0x15')](_0x1cf4b5)[_0x2471('0x16')]();};}function respondWithResult(_0x248bd8,_0x1aa439){_0x1aa439=_0x1aa439||0xc8;return function(_0x19b2ab){if(_0x19b2ab){return _0x248bd8[_0x2471('0x15')](_0x1aa439)[_0x2471('0x17')](_0x19b2ab);}};}function respondWithFilteredResult(_0x5d87b5,_0x5cde10){return function(_0x4f36ff){if(_0x4f36ff){var _0x1ab610=typeof _0x5cde10['offset']===_0x2471('0x18')&&typeof _0x5cde10[_0x2471('0x19')]===_0x2471('0x18');var _0x3718f6=_0x4f36ff[_0x2471('0x1a')];var _0x59423f=_0x1ab610?0x0:_0x5cde10[_0x2471('0x1b')];var _0x33a4c9=_0x1ab610?_0x4f36ff[_0x2471('0x1a')]:_0x5cde10[_0x2471('0x1b')]+_0x5cde10[_0x2471('0x19')];var _0x402d3d;if(_0x33a4c9>=_0x3718f6){_0x33a4c9=_0x3718f6;_0x402d3d=0xc8;}else{_0x402d3d=0xce;}_0x5d87b5['status'](_0x402d3d);return _0x5d87b5[_0x2471('0x1c')](_0x2471('0x1d'),_0x59423f+'-'+_0x33a4c9+'/'+_0x3718f6)[_0x2471('0x17')](_0x4f36ff);}return null;};}function patchUpdates(_0x1ceeba){return function(_0x283d46){try{jsonpatch[_0x2471('0x1e')](_0x283d46,_0x1ceeba,!![]);}catch(_0x3455bc){return BPromise[_0x2471('0x1f')](_0x3455bc);}return _0x283d46['save']();};}function saveUpdates(_0x2255fc,_0x4179c6){return function(_0xae85ce){if(_0xae85ce){return _0xae85ce['update'](_0x2255fc)[_0x2471('0x20')](function(_0x2306e2){return _0x2306e2;});}return null;};}function removeEntity(_0x2448a8,_0x5849cf){return function(_0x4f6a77){if(_0x4f6a77){return _0x4f6a77[_0x2471('0x21')]()[_0x2471('0x20')](function(){var _0x5dc6d6=_0x4f6a77[_0x2471('0x22')]({'plain':!![]});var _0x347c10=_0x2471('0x23');return db[_0x2471('0x24')][_0x2471('0x21')]({'where':{'type':_0x347c10,'resourceId':_0x5dc6d6['id']}})[_0x2471('0x20')](function(){return _0x4f6a77;});})['then'](function(){_0x2448a8[_0x2471('0x15')](0xcc)[_0x2471('0x16')]();});}};}function handleEntityNotFound(_0x4ed01d,_0x4fea93){return function(_0x46207a){if(!_0x46207a){_0x4ed01d[_0x2471('0x25')](0x194);}return _0x46207a;};}function handleError(_0xf4fb85,_0x431118){_0x431118=_0x431118||0x1f4;return function(_0x1d3f7d){logger['error'](_0x1d3f7d[_0x2471('0x26')]);if(_0x1d3f7d[_0x2471('0x27')]){delete _0x1d3f7d[_0x2471('0x27')];}_0xf4fb85[_0x2471('0x15')](_0x431118)[_0x2471('0x28')](_0x1d3f7d);};}exports['index']=function(_0x3170ab,_0x3b9dab){var _0x226b47={},_0x2145b6={},_0x4cf0df={'count':0x0,'rows':[]};var _0x27cf10=_[_0x2471('0x29')](db[_0x2471('0x2a')][_0x2471('0x2b')],function(_0x1bb45e){return{'name':_0x1bb45e[_0x2471('0x2c')],'type':_0x1bb45e[_0x2471('0x2d')][_0x2471('0x2e')]};});_0x2145b6[_0x2471('0x2f')]=_['map'](_0x27cf10,_0x2471('0x27'));_0x2145b6[_0x2471('0x30')]=_[_0x2471('0x31')](_0x3170ab[_0x2471('0x30')]);_0x2145b6['filters']=_[_0x2471('0x32')](_0x2145b6[_0x2471('0x2f')],_0x2145b6[_0x2471('0x30')]);_0x226b47['attributes']=_[_0x2471('0x32')](_0x2145b6['model'],qs[_0x2471('0x33')](_0x3170ab[_0x2471('0x30')][_0x2471('0x33')]));_0x226b47[_0x2471('0x34')]=_0x226b47[_0x2471('0x34')][_0x2471('0x35')]?_0x226b47[_0x2471('0x34')]:_0x2145b6['model'];if(!_0x3170ab[_0x2471('0x30')][_0x2471('0x36')]('nolimit')){_0x226b47[_0x2471('0x19')]=qs[_0x2471('0x19')](_0x3170ab[_0x2471('0x30')][_0x2471('0x19')]);_0x226b47[_0x2471('0x1b')]=qs['offset'](_0x3170ab[_0x2471('0x30')]['offset']);}_0x226b47[_0x2471('0x37')]=qs[_0x2471('0x38')](_0x3170ab[_0x2471('0x30')][_0x2471('0x38')]);_0x226b47[_0x2471('0x39')]=qs[_0x2471('0x3a')](_[_0x2471('0x3b')](_0x3170ab['query'],_0x2145b6['filters']),_0x27cf10);if(_0x3170ab[_0x2471('0x30')][_0x2471('0x3c')]){_0x226b47[_0x2471('0x39')]=_['merge'](_0x226b47['where'],{'$or':_[_0x2471('0x29')](_0x27cf10,function(_0x4d43a5){if(_0x4d43a5['type']!==_0x2471('0x3d')){var _0x1dbf22={};_0x1dbf22[_0x4d43a5[_0x2471('0x27')]]={'$like':'%'+_0x3170ab['query'][_0x2471('0x3c')]+'%'};return _0x1dbf22;}})});}_0x226b47=_[_0x2471('0x3e')]({},_0x226b47,_0x3170ab[_0x2471('0x3f')]);var _0x5a2881={'where':_0x226b47[_0x2471('0x39')]};return db[_0x2471('0x2a')][_0x2471('0x1a')](_0x5a2881)[_0x2471('0x20')](function(_0x4aaa37){_0x4cf0df[_0x2471('0x1a')]=_0x4aaa37;if(_0x3170ab[_0x2471('0x30')][_0x2471('0x40')]){_0x226b47[_0x2471('0x41')]=[{'all':!![]}];}return db[_0x2471('0x2a')]['findAll'](_0x226b47);})[_0x2471('0x20')](function(_0x25ca15){_0x4cf0df[_0x2471('0x42')]=_0x25ca15;return _0x4cf0df;})[_0x2471('0x20')](respondWithFilteredResult(_0x3b9dab,_0x226b47))[_0x2471('0x43')](handleError(_0x3b9dab,null));};exports[_0x2471('0x44')]=function(_0x399276,_0x5564cc){var _0x576251={'raw':!![],'where':{'id':_0x399276[_0x2471('0x45')]['id']}},_0x5af6c0={};_0x5af6c0['model']=_[_0x2471('0x31')](db[_0x2471('0x2a')][_0x2471('0x2b')]);_0x5af6c0[_0x2471('0x30')]=_[_0x2471('0x31')](_0x399276['query']);_0x5af6c0[_0x2471('0x3a')]=_['intersection'](_0x5af6c0[_0x2471('0x2f')],_0x5af6c0['query']);_0x576251[_0x2471('0x34')]=_[_0x2471('0x32')](_0x5af6c0[_0x2471('0x2f')],qs[_0x2471('0x33')](_0x399276[_0x2471('0x30')]['fields']));_0x576251[_0x2471('0x34')]=_0x576251[_0x2471('0x34')][_0x2471('0x35')]?_0x576251[_0x2471('0x34')]:_0x5af6c0[_0x2471('0x2f')];if(_0x399276[_0x2471('0x30')]['includeAll']){_0x576251[_0x2471('0x41')]=[{'all':!![]}];}_0x576251=_[_0x2471('0x3e')]({},_0x576251,_0x399276['options']);return db['Interval'][_0x2471('0x46')](_0x576251)['then'](handleEntityNotFound(_0x5564cc,null))['then'](respondWithResult(_0x5564cc,null))[_0x2471('0x43')](handleError(_0x5564cc,null));};exports[_0x2471('0x47')]=function(_0x1d4816,_0x528891){return db[_0x2471('0x2a')][_0x2471('0x47')](_0x1d4816[_0x2471('0x48')],{})[_0x2471('0x20')](function(_0xc5dd27){var _0x474442=_0x1d4816['user'][_0x2471('0x22')]({'plain':!![]});if(!_0x474442)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x474442[_0x2471('0x49')]===_0x2471('0x4a')){var _0x338d9b=_0xc5dd27[_0x2471('0x22')]({'plain':!![]});var _0x4a513c=_0x2471('0x23');return db[_0x2471('0x4b')][_0x2471('0x46')]({'where':{'name':_0x4a513c,'userProfileId':_0x474442[_0x2471('0x4c')]},'raw':!![]})[_0x2471('0x20')](function(_0x1c52e7){if(_0x1c52e7&&_0x1c52e7[_0x2471('0x4d')]===0x0){return db[_0x2471('0x24')][_0x2471('0x47')]({'name':_0x338d9b['name'],'resourceId':_0x338d9b['id'],'type':_0x1c52e7[_0x2471('0x27')],'sectionId':_0x1c52e7['id']},{})['then'](function(){return _0xc5dd27;});}else{return _0xc5dd27;}})['catch'](function(_0x3a9e44){logger[_0x2471('0x4e')](_0x2471('0x4f'),_0x3a9e44);throw _0x3a9e44;});}return _0xc5dd27;})[_0x2471('0x20')](respondWithResult(_0x528891,0xc9))[_0x2471('0x43')](handleError(_0x528891,null));};exports[_0x2471('0x50')]=function(_0x252831,_0x1f5392){if(_0x252831[_0x2471('0x48')]['id']){delete _0x252831['body']['id'];}return db['Interval'][_0x2471('0x46')]({'where':{'id':_0x252831[_0x2471('0x45')]['id']}})[_0x2471('0x20')](handleEntityNotFound(_0x1f5392,null))['then'](saveUpdates(_0x252831['body'],null))[_0x2471('0x20')](respondWithResult(_0x1f5392,null))[_0x2471('0x43')](handleError(_0x1f5392,null));};exports['destroy']=function(_0x4098c6,_0x103037){return db[_0x2471('0x2a')][_0x2471('0x46')]({'where':{'id':_0x4098c6[_0x2471('0x45')]['id']}})['then'](handleEntityNotFound(_0x103037,null))[_0x2471('0x20')](removeEntity(_0x103037,null))['catch'](handleError(_0x103037,null));};exports[_0x2471('0x51')]=function(_0x410a6b,_0x41a831,_0x5ab8f4){if(_0x410a6b['body']['id']){delete _0x410a6b['body']['id'];}return db[_0x2471('0x2a')]['find']({'where':{'id':_0x410a6b[_0x2471('0x45')]['id']}})[_0x2471('0x20')](handleEntityNotFound(_0x41a831,null))['then'](function(_0x4c42e7){if(_0x4c42e7){_0x410a6b[_0x2471('0x48')]['IntervalId']=_0x4c42e7['id'];return db[_0x2471('0x2a')][_0x2471('0x47')](_0x410a6b[_0x2471('0x48')]);}})[_0x2471('0x20')](respondWithResult(_0x41a831,null))[_0x2471('0x43')](handleError(_0x41a831,null));};exports[_0x2471('0x52')]=function(_0x3f3c65,_0x11bca1,_0xe05d42){var _0x3d8fc0={};var _0x416dbd={};var _0x3edebc;var _0x1c8501;return db[_0x2471('0x2a')]['findOne']({'where':{'id':_0x3f3c65['params']['id']}})[_0x2471('0x20')](handleEntityNotFound(_0x11bca1,null))[_0x2471('0x20')](function(_0x512bd3){if(_0x512bd3){_0x3edebc=_0x512bd3;_0x416dbd['model']=_[_0x2471('0x31')](db[_0x2471('0x2a')][_0x2471('0x2b')]);_0x416dbd[_0x2471('0x30')]=_[_0x2471('0x31')](_0x3f3c65['query']);_0x416dbd[_0x2471('0x3a')]=_['intersection'](_0x416dbd[_0x2471('0x2f')],_0x416dbd[_0x2471('0x30')]);_0x3d8fc0[_0x2471('0x34')]=_['intersection'](_0x416dbd[_0x2471('0x2f')],qs[_0x2471('0x33')](_0x3f3c65[_0x2471('0x30')]['fields']));_0x3d8fc0['attributes']=_0x3d8fc0[_0x2471('0x34')][_0x2471('0x35')]?_0x3d8fc0[_0x2471('0x34')]:_0x416dbd[_0x2471('0x2f')];_0x3d8fc0[_0x2471('0x37')]=qs['sort'](_0x3f3c65['query'][_0x2471('0x38')]);_0x3d8fc0[_0x2471('0x39')]=qs['filters'](_[_0x2471('0x3b')](_0x3f3c65[_0x2471('0x30')],_0x416dbd[_0x2471('0x3a')]));if(_0x3f3c65[_0x2471('0x30')][_0x2471('0x3c')]){_0x3d8fc0['where']=_['merge'](_0x3d8fc0[_0x2471('0x39')],{'$or':_[_0x2471('0x29')](_0x3d8fc0['attributes'],function(_0x299f35){var _0x4aefc6={};_0x4aefc6[_0x299f35]={'$like':'%'+_0x3f3c65[_0x2471('0x30')][_0x2471('0x3c')]+'%'};return _0x4aefc6;})});}_0x3d8fc0=_[_0x2471('0x3e')]({},_0x3d8fc0,_0x3f3c65[_0x2471('0x3f')]);return _0x3edebc[_0x2471('0x52')](_0x3d8fc0);}})[_0x2471('0x20')](function(_0x1ae551){if(_0x1ae551){_0x1c8501=_0x1ae551[_0x2471('0x35')];if(!_0x3f3c65[_0x2471('0x30')][_0x2471('0x36')](_0x2471('0x53'))){_0x3d8fc0[_0x2471('0x19')]=qs[_0x2471('0x19')](_0x3f3c65[_0x2471('0x30')][_0x2471('0x19')]);_0x3d8fc0[_0x2471('0x1b')]=qs['offset'](_0x3f3c65[_0x2471('0x30')][_0x2471('0x1b')]);}return _0x3edebc[_0x2471('0x52')](_0x3d8fc0);}})[_0x2471('0x20')](function(_0x158014){if(_0x158014){return _0x158014?{'count':_0x1c8501,'rows':_0x158014}:null;}})['then'](respondWithResult(_0x11bca1,null))[_0x2471('0x43')](handleError(_0x11bca1,null));};exports[_0x2471('0x54')]=function(_0x23e300,_0xcebc24,_0x435ca2){return db['Interval'][_0x2471('0x55')]({'where':{'id':_0x23e300[_0x2471('0x45')]['id']}})[_0x2471('0x20')](handleEntityNotFound(_0xcebc24,null))[_0x2471('0x20')](function(_0xc205d2){if(_0xc205d2){return db[_0x2471('0x56')][_0x2471('0x57')](function(_0x495fd9){return db[_0x2471('0x2a')][_0x2471('0x21')]({'where':{'IntervalId':_0x23e300[_0x2471('0x45')]['id']},'transaction':_0x495fd9})[_0x2471('0x20')](function(_0x5f2a69){var _0x4f523c=_[_0x2471('0x29')](_0x23e300[_0x2471('0x48')],function(_0x46fa2b){delete _0x46fa2b['id'];_0x46fa2b[_0x2471('0x58')]=_0x23e300[_0x2471('0x45')]['id'];return _0x46fa2b;});return db[_0x2471('0x2a')][_0x2471('0x59')](_0x4f523c,{'transaction':_0x495fd9});});})[_0x2471('0x20')](function(){return db[_0x2471('0x2a')]['findAll']({'where':{'IntervalId':_0x23e300[_0x2471('0x45')]['id']}});});}})[_0x2471('0x20')](respondWithResult(_0xcebc24,null))[_0x2471('0x43')](handleError(_0xcebc24,null));};