c27b28fddfea87c5f911ff35ac56614b0c99932c
[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 _0x6042=['attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','options','count','includeAll','include','findAll','rows','catch','params','find','create','body','user','role','Intervals','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','addInterval','IntervalId','getIntervals','findOne','sequelize','transaction','bulkCreate','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','../../components/auth/service','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/extensions/rewrite','sendStatus','status','json','undefined','offset','limit','set','Content-Range','apply','reject','save','then','get','UserProfileResource','destroy','error','stack','name','send','index','map','Interval','rawAttributes','fieldName','type','model','query','keys','filters','intersection'];(function(_0x361034,_0x36061a){var _0x4d9953=function(_0x245112){while(--_0x245112){_0x361034['push'](_0x361034['shift']());}};_0x4d9953(++_0x36061a);}(_0x6042,0xdf));var _0x2604=function(_0xa464c9,_0x7c86d8){_0xa464c9=_0xa464c9-0x0;var _0x3d73c4=_0x6042[_0xa464c9];return _0x3d73c4;};'use strict';var emlformat=require(_0x2604('0x0'));var rimraf=require(_0x2604('0x1'));var zipdir=require(_0x2604('0x2'));var jsonpatch=require(_0x2604('0x3'));var rp=require(_0x2604('0x4'));var moment=require('moment');var BPromise=require(_0x2604('0x5'));var Mustache=require(_0x2604('0x6'));var util=require('util');var path=require(_0x2604('0x7'));var sox=require(_0x2604('0x8'));var csv=require(_0x2604('0x9'));var ejs=require(_0x2604('0xa'));var fs=require('fs');var fs_extra=require(_0x2604('0xb'));var _=require(_0x2604('0xc'));var squel=require(_0x2604('0xd'));var crypto=require(_0x2604('0xe'));var jsforce=require(_0x2604('0xf'));var deskjs=require(_0x2604('0x10'));var toCsv=require(_0x2604('0x9'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x2604('0x11'));var qs=require(_0x2604('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x2604('0x13'))(_0x2604('0x14'));var utils=require(_0x2604('0x15'));var config=require(_0x2604('0x16'));var licenseUtil=require(_0x2604('0x17'));var db=require(_0x2604('0x18'))['db'];var extensions=require(_0x2604('0x19'));function respondWithStatusCode(_0x516770,_0xf9e443){_0xf9e443=_0xf9e443||0xcc;return function(_0x3084ac){if(_0x3084ac){return _0x516770[_0x2604('0x1a')](_0xf9e443);}return _0x516770[_0x2604('0x1b')](_0xf9e443)['end']();};}function respondWithResult(_0x35bd91,_0x3d5b2c){_0x3d5b2c=_0x3d5b2c||0xc8;return function(_0x2d472c){if(_0x2d472c){return _0x35bd91[_0x2604('0x1b')](_0x3d5b2c)[_0x2604('0x1c')](_0x2d472c);}};}function respondWithFilteredResult(_0x403eb,_0x2926bc){return function(_0x4fb888){if(_0x4fb888){var _0x1d7355=typeof _0x2926bc['offset']===_0x2604('0x1d')&&typeof _0x2926bc['limit']===_0x2604('0x1d');var _0x30c217=_0x4fb888['count'];var _0x28e27b=_0x1d7355?0x0:_0x2926bc['offset'];var _0x294387=_0x1d7355?_0x4fb888['count']:_0x2926bc[_0x2604('0x1e')]+_0x2926bc[_0x2604('0x1f')];var _0x526898;if(_0x294387>=_0x30c217){_0x294387=_0x30c217;_0x526898=0xc8;}else{_0x526898=0xce;}_0x403eb[_0x2604('0x1b')](_0x526898);return _0x403eb[_0x2604('0x20')](_0x2604('0x21'),_0x28e27b+'-'+_0x294387+'/'+_0x30c217)[_0x2604('0x1c')](_0x4fb888);}return null;};}function patchUpdates(_0x4fb363){return function(_0x4daf0b){try{jsonpatch[_0x2604('0x22')](_0x4daf0b,_0x4fb363,!![]);}catch(_0x430073){return BPromise[_0x2604('0x23')](_0x430073);}return _0x4daf0b[_0x2604('0x24')]();};}function saveUpdates(_0x78a390,_0x1b6ce0){return function(_0x47e22){if(_0x47e22){return _0x47e22['update'](_0x78a390)[_0x2604('0x25')](function(_0x8740b8){return _0x8740b8;});}return null;};}function removeEntity(_0x4ede4a,_0x1c90ed){return function(_0x359688){if(_0x359688){return _0x359688['destroy']()[_0x2604('0x25')](function(){var _0x403fea=_0x359688[_0x2604('0x26')]({'plain':!![]});var _0x5bbf31='Intervals';return db[_0x2604('0x27')][_0x2604('0x28')]({'where':{'type':_0x5bbf31,'resourceId':_0x403fea['id']}})[_0x2604('0x25')](function(){return _0x359688;});})[_0x2604('0x25')](function(){_0x4ede4a['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x2c70d0,_0x38c504){return function(_0x271a46){if(!_0x271a46){_0x2c70d0[_0x2604('0x1a')](0x194);}return _0x271a46;};}function handleError(_0x1c3038,_0xbb7a0b){_0xbb7a0b=_0xbb7a0b||0x1f4;return function(_0x481111){logger[_0x2604('0x29')](_0x481111[_0x2604('0x2a')]);if(_0x481111[_0x2604('0x2b')]){delete _0x481111[_0x2604('0x2b')];}_0x1c3038['status'](_0xbb7a0b)[_0x2604('0x2c')](_0x481111);};}exports[_0x2604('0x2d')]=function(_0x284f15,_0x525e28){var _0xc3b8f3={},_0x2e28e1={},_0x34ee4e={'count':0x0,'rows':[]};var _0x1e9141=_[_0x2604('0x2e')](db[_0x2604('0x2f')][_0x2604('0x30')],function(_0x21c727){return{'name':_0x21c727[_0x2604('0x31')],'type':_0x21c727[_0x2604('0x32')]['key']};});_0x2e28e1[_0x2604('0x33')]=_[_0x2604('0x2e')](_0x1e9141,_0x2604('0x2b'));_0x2e28e1[_0x2604('0x34')]=_[_0x2604('0x35')](_0x284f15[_0x2604('0x34')]);_0x2e28e1[_0x2604('0x36')]=_[_0x2604('0x37')](_0x2e28e1['model'],_0x2e28e1[_0x2604('0x34')]);_0xc3b8f3[_0x2604('0x38')]=_[_0x2604('0x37')](_0x2e28e1[_0x2604('0x33')],qs['fields'](_0x284f15[_0x2604('0x34')][_0x2604('0x39')]));_0xc3b8f3[_0x2604('0x38')]=_0xc3b8f3[_0x2604('0x38')][_0x2604('0x3a')]?_0xc3b8f3[_0x2604('0x38')]:_0x2e28e1[_0x2604('0x33')];if(!_0x284f15['query'][_0x2604('0x3b')](_0x2604('0x3c'))){_0xc3b8f3[_0x2604('0x1f')]=qs[_0x2604('0x1f')](_0x284f15[_0x2604('0x34')][_0x2604('0x1f')]);_0xc3b8f3[_0x2604('0x1e')]=qs['offset'](_0x284f15['query']['offset']);}_0xc3b8f3[_0x2604('0x3d')]=qs[_0x2604('0x3e')](_0x284f15[_0x2604('0x34')][_0x2604('0x3e')]);_0xc3b8f3[_0x2604('0x3f')]=qs[_0x2604('0x36')](_[_0x2604('0x40')](_0x284f15[_0x2604('0x34')],_0x2e28e1[_0x2604('0x36')]),_0x1e9141);if(_0x284f15['query'][_0x2604('0x41')]){_0xc3b8f3['where']=_[_0x2604('0x42')](_0xc3b8f3['where'],{'$or':_[_0x2604('0x2e')](_0x1e9141,function(_0x376c87){if(_0x376c87[_0x2604('0x32')]!=='VIRTUAL'){var _0x57ae76={};_0x57ae76[_0x376c87[_0x2604('0x2b')]]={'$like':'%'+_0x284f15['query']['filter']+'%'};return _0x57ae76;}})});}_0xc3b8f3=_[_0x2604('0x42')]({},_0xc3b8f3,_0x284f15[_0x2604('0x43')]);var _0x41255={'where':_0xc3b8f3[_0x2604('0x3f')]};return db[_0x2604('0x2f')][_0x2604('0x44')](_0x41255)[_0x2604('0x25')](function(_0x2a6d21){_0x34ee4e[_0x2604('0x44')]=_0x2a6d21;if(_0x284f15[_0x2604('0x34')][_0x2604('0x45')]){_0xc3b8f3[_0x2604('0x46')]=[{'all':!![]}];}return db[_0x2604('0x2f')][_0x2604('0x47')](_0xc3b8f3);})['then'](function(_0x25a835){_0x34ee4e[_0x2604('0x48')]=_0x25a835;return _0x34ee4e;})['then'](respondWithFilteredResult(_0x525e28,_0xc3b8f3))[_0x2604('0x49')](handleError(_0x525e28,null));};exports['show']=function(_0x313c80,_0xd3e87d){var _0x3d4acb={'raw':!![],'where':{'id':_0x313c80[_0x2604('0x4a')]['id']}},_0x142cf0={};_0x142cf0[_0x2604('0x33')]=_[_0x2604('0x35')](db[_0x2604('0x2f')][_0x2604('0x30')]);_0x142cf0[_0x2604('0x34')]=_[_0x2604('0x35')](_0x313c80[_0x2604('0x34')]);_0x142cf0['filters']=_['intersection'](_0x142cf0[_0x2604('0x33')],_0x142cf0['query']);_0x3d4acb['attributes']=_[_0x2604('0x37')](_0x142cf0[_0x2604('0x33')],qs['fields'](_0x313c80[_0x2604('0x34')][_0x2604('0x39')]));_0x3d4acb[_0x2604('0x38')]=_0x3d4acb[_0x2604('0x38')][_0x2604('0x3a')]?_0x3d4acb['attributes']:_0x142cf0[_0x2604('0x33')];if(_0x313c80[_0x2604('0x34')]['includeAll']){_0x3d4acb[_0x2604('0x46')]=[{'all':!![]}];}_0x3d4acb=_[_0x2604('0x42')]({},_0x3d4acb,_0x313c80['options']);return db[_0x2604('0x2f')][_0x2604('0x4b')](_0x3d4acb)[_0x2604('0x25')](handleEntityNotFound(_0xd3e87d,null))[_0x2604('0x25')](respondWithResult(_0xd3e87d,null))[_0x2604('0x49')](handleError(_0xd3e87d,null));};exports[_0x2604('0x4c')]=function(_0x572399,_0x5d45b3){return db['Interval']['create'](_0x572399[_0x2604('0x4d')],{})[_0x2604('0x25')](function(_0x360f0a){var _0x2fc9e7=_0x572399[_0x2604('0x4e')]['get']({'plain':!![]});if(!_0x2fc9e7)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x2fc9e7[_0x2604('0x4f')]===_0x2604('0x4e')){var _0x29481b=_0x360f0a[_0x2604('0x26')]({'plain':!![]});var _0x33dfea=_0x2604('0x50');return db[_0x2604('0x51')][_0x2604('0x4b')]({'where':{'name':_0x33dfea,'userProfileId':_0x2fc9e7[_0x2604('0x52')]},'raw':!![]})['then'](function(_0x39b1a1){if(_0x39b1a1&&_0x39b1a1[_0x2604('0x53')]===0x0){return db[_0x2604('0x27')][_0x2604('0x4c')]({'name':_0x29481b[_0x2604('0x2b')],'resourceId':_0x29481b['id'],'type':_0x39b1a1[_0x2604('0x2b')],'sectionId':_0x39b1a1['id']},{})['then'](function(){return _0x360f0a;});}else{return _0x360f0a;}})[_0x2604('0x49')](function(_0x5b2b5b){logger[_0x2604('0x29')](_0x2604('0x54'),_0x5b2b5b);throw _0x5b2b5b;});}return _0x360f0a;})[_0x2604('0x25')](respondWithResult(_0x5d45b3,0xc9))['catch'](handleError(_0x5d45b3,null));};exports[_0x2604('0x55')]=function(_0x5b4788,_0x3027f2){if(_0x5b4788[_0x2604('0x4d')]['id']){delete _0x5b4788[_0x2604('0x4d')]['id'];}return db[_0x2604('0x2f')][_0x2604('0x4b')]({'where':{'id':_0x5b4788['params']['id']}})[_0x2604('0x25')](handleEntityNotFound(_0x3027f2,null))['then'](saveUpdates(_0x5b4788[_0x2604('0x4d')],null))[_0x2604('0x25')](respondWithResult(_0x3027f2,null))[_0x2604('0x49')](handleError(_0x3027f2,null));};exports[_0x2604('0x28')]=function(_0x7e4884,_0x35160d){return db[_0x2604('0x2f')][_0x2604('0x4b')]({'where':{'id':_0x7e4884[_0x2604('0x4a')]['id']}})[_0x2604('0x25')](handleEntityNotFound(_0x35160d,null))['then'](removeEntity(_0x35160d,null))[_0x2604('0x49')](handleError(_0x35160d,null));};exports[_0x2604('0x56')]=function(_0x54cd7c,_0x41cb9c,_0x7a54e3){if(_0x54cd7c[_0x2604('0x4d')]['id']){delete _0x54cd7c['body']['id'];}return db['Interval'][_0x2604('0x4b')]({'where':{'id':_0x54cd7c[_0x2604('0x4a')]['id']}})[_0x2604('0x25')](handleEntityNotFound(_0x41cb9c,null))[_0x2604('0x25')](function(_0x2d2b47){if(_0x2d2b47){_0x54cd7c[_0x2604('0x4d')][_0x2604('0x57')]=_0x2d2b47['id'];return db[_0x2604('0x2f')][_0x2604('0x4c')](_0x54cd7c[_0x2604('0x4d')]);}})['then'](respondWithResult(_0x41cb9c,null))[_0x2604('0x49')](handleError(_0x41cb9c,null));};exports[_0x2604('0x58')]=function(_0x1f1928,_0x552d4a,_0x4a2caa){var _0x112cfb={};var _0x4d2d1f={};var _0x2d5582;var _0x1788da;return db['Interval']['findOne']({'where':{'id':_0x1f1928[_0x2604('0x4a')]['id']}})[_0x2604('0x25')](handleEntityNotFound(_0x552d4a,null))[_0x2604('0x25')](function(_0x3c2e87){if(_0x3c2e87){_0x2d5582=_0x3c2e87;_0x4d2d1f[_0x2604('0x33')]=_[_0x2604('0x35')](db['Interval'][_0x2604('0x30')]);_0x4d2d1f[_0x2604('0x34')]=_[_0x2604('0x35')](_0x1f1928[_0x2604('0x34')]);_0x4d2d1f[_0x2604('0x36')]=_[_0x2604('0x37')](_0x4d2d1f[_0x2604('0x33')],_0x4d2d1f[_0x2604('0x34')]);_0x112cfb[_0x2604('0x38')]=_['intersection'](_0x4d2d1f['model'],qs[_0x2604('0x39')](_0x1f1928[_0x2604('0x34')]['fields']));_0x112cfb[_0x2604('0x38')]=_0x112cfb[_0x2604('0x38')][_0x2604('0x3a')]?_0x112cfb[_0x2604('0x38')]:_0x4d2d1f['model'];_0x112cfb[_0x2604('0x3d')]=qs['sort'](_0x1f1928[_0x2604('0x34')][_0x2604('0x3e')]);_0x112cfb[_0x2604('0x3f')]=qs[_0x2604('0x36')](_[_0x2604('0x40')](_0x1f1928[_0x2604('0x34')],_0x4d2d1f[_0x2604('0x36')]));if(_0x1f1928['query'][_0x2604('0x41')]){_0x112cfb['where']=_[_0x2604('0x42')](_0x112cfb[_0x2604('0x3f')],{'$or':_[_0x2604('0x2e')](_0x112cfb[_0x2604('0x38')],function(_0x2663e2){var _0x443a29={};_0x443a29[_0x2663e2]={'$like':'%'+_0x1f1928['query']['filter']+'%'};return _0x443a29;})});}_0x112cfb=_[_0x2604('0x42')]({},_0x112cfb,_0x1f1928[_0x2604('0x43')]);return _0x2d5582[_0x2604('0x58')](_0x112cfb);}})[_0x2604('0x25')](function(_0xd30134){if(_0xd30134){_0x1788da=_0xd30134[_0x2604('0x3a')];if(!_0x1f1928[_0x2604('0x34')][_0x2604('0x3b')]('nolimit')){_0x112cfb['limit']=qs[_0x2604('0x1f')](_0x1f1928[_0x2604('0x34')][_0x2604('0x1f')]);_0x112cfb[_0x2604('0x1e')]=qs[_0x2604('0x1e')](_0x1f1928[_0x2604('0x34')][_0x2604('0x1e')]);}return _0x2d5582['getIntervals'](_0x112cfb);}})[_0x2604('0x25')](function(_0x291809){if(_0x291809){return _0x291809?{'count':_0x1788da,'rows':_0x291809}:null;}})[_0x2604('0x25')](respondWithResult(_0x552d4a,null))['catch'](handleError(_0x552d4a,null));};exports['addIntervals']=function(_0xd32ae8,_0x243a8d,_0x54898b){return db[_0x2604('0x2f')][_0x2604('0x59')]({'where':{'id':_0xd32ae8[_0x2604('0x4a')]['id']}})[_0x2604('0x25')](handleEntityNotFound(_0x243a8d,null))['then'](function(_0x14adca){if(_0x14adca){return db[_0x2604('0x5a')][_0x2604('0x5b')](function(_0x167139){return db[_0x2604('0x2f')]['destroy']({'where':{'IntervalId':_0xd32ae8[_0x2604('0x4a')]['id']},'transaction':_0x167139})['then'](function(_0x27b3ee){var _0x307a6c=_[_0x2604('0x2e')](_0xd32ae8[_0x2604('0x4d')],function(_0x29d928){delete _0x29d928['id'];_0x29d928[_0x2604('0x57')]=_0xd32ae8[_0x2604('0x4a')]['id'];return _0x29d928;});return db['Interval'][_0x2604('0x5c')](_0x307a6c,{'transaction':_0x167139});});})['then'](function(){return db[_0x2604('0x2f')][_0x2604('0x47')]({'where':{'IntervalId':_0xd32ae8['params']['id']}});});}})[_0x2604('0x25')](respondWithResult(_0x243a8d,null))[_0x2604('0x49')](handleError(_0x243a8d,null));};