5363c19cbf77bd07660f912419fa8b854d0bec86
[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 _0xeab7=['api','../../config/environment','../../config/license/util','../../mysqldb','../../components/extensions/rewrite','sendStatus','status','end','json','offset','limit','count','set','reject','save','update','then','get','destroy','error','name','send','index','map','Interval','rawAttributes','fieldName','type','key','model','query','keys','filters','attributes','intersection','fields','length','hasOwnProperty','order','sort','where','pick','merge','filter','options','includeAll','findAll','rows','catch','show','params','include','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','IntervalId','getIntervals','findOne','nolimit','addIntervals','sequelize','transaction','bulkCreate','eml-format','request-promise','moment','mustache','sox','to-csv','ejs','squel','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger'];(function(_0x2f3947,_0x2ee083){var _0x3e6ab7=function(_0x4057c0){while(--_0x4057c0){_0x2f3947['push'](_0x2f3947['shift']());}};_0x3e6ab7(++_0x2ee083);}(_0xeab7,0x99));var _0x7eab=function(_0x3cb2bb,_0x13c4bb){_0x3cb2bb=_0x3cb2bb-0x0;var _0x4165bc=_0xeab7[_0x3cb2bb];return _0x4165bc;};'use strict';var emlformat=require(_0x7eab('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x7eab('0x1'));var moment=require(_0x7eab('0x2'));var BPromise=require('bluebird');var Mustache=require(_0x7eab('0x3'));var util=require('util');var path=require('path');var sox=require(_0x7eab('0x4'));var csv=require(_0x7eab('0x5'));var ejs=require(_0x7eab('0x6'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x7eab('0x7'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x7eab('0x8'));var toCsv=require(_0x7eab('0x5'));var querystring=require(_0x7eab('0x9'));var Papa=require(_0x7eab('0xa'));var Redis=require(_0x7eab('0xb'));var authService=require(_0x7eab('0xc'));var qs=require(_0x7eab('0xd'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x7eab('0xe'))(_0x7eab('0xf'));var utils=require('../../config/utils');var config=require(_0x7eab('0x10'));var licenseUtil=require(_0x7eab('0x11'));var db=require(_0x7eab('0x12'))['db'];var extensions=require(_0x7eab('0x13'));function respondWithStatusCode(_0x56940f,_0x46c19a){_0x46c19a=_0x46c19a||0xcc;return function(_0x2dfd7d){if(_0x2dfd7d){return _0x56940f[_0x7eab('0x14')](_0x46c19a);}return _0x56940f[_0x7eab('0x15')](_0x46c19a)[_0x7eab('0x16')]();};}function respondWithResult(_0x2e724d,_0x2dc32a){_0x2dc32a=_0x2dc32a||0xc8;return function(_0x36640a){if(_0x36640a){return _0x2e724d[_0x7eab('0x15')](_0x2dc32a)[_0x7eab('0x17')](_0x36640a);}};}function respondWithFilteredResult(_0x43c621,_0x417ef8){return function(_0x5ed450){if(_0x5ed450){var _0xefdf34=typeof _0x417ef8[_0x7eab('0x18')]==='undefined'&&typeof _0x417ef8[_0x7eab('0x19')]==='undefined';var _0x6c1d63=_0x5ed450[_0x7eab('0x1a')];var _0x404f54=_0xefdf34?0x0:_0x417ef8[_0x7eab('0x18')];var _0x3429ae=_0xefdf34?_0x5ed450[_0x7eab('0x1a')]:_0x417ef8[_0x7eab('0x18')]+_0x417ef8[_0x7eab('0x19')];var _0x379d1b;if(_0x3429ae>=_0x6c1d63){_0x3429ae=_0x6c1d63;_0x379d1b=0xc8;}else{_0x379d1b=0xce;}_0x43c621['status'](_0x379d1b);return _0x43c621[_0x7eab('0x1b')]('Content-Range',_0x404f54+'-'+_0x3429ae+'/'+_0x6c1d63)[_0x7eab('0x17')](_0x5ed450);}return null;};}function patchUpdates(_0x3bc9b2){return function(_0x4628c4){try{jsonpatch['apply'](_0x4628c4,_0x3bc9b2,!![]);}catch(_0x5000e0){return BPromise[_0x7eab('0x1c')](_0x5000e0);}return _0x4628c4[_0x7eab('0x1d')]();};}function saveUpdates(_0x5e9726,_0x233af9){return function(_0x1ce4b6){if(_0x1ce4b6){return _0x1ce4b6[_0x7eab('0x1e')](_0x5e9726)['then'](function(_0x3c8cae){return _0x3c8cae;});}return null;};}function removeEntity(_0x478726,_0x8c47d2){return function(_0xfffc23){if(_0xfffc23){return _0xfffc23['destroy']()[_0x7eab('0x1f')](function(){var _0x558914=_0xfffc23[_0x7eab('0x20')]({'plain':!![]});var _0x502296='Intervals';return db['UserProfileResource'][_0x7eab('0x21')]({'where':{'type':_0x502296,'resourceId':_0x558914['id']}})[_0x7eab('0x1f')](function(){return _0xfffc23;});})[_0x7eab('0x1f')](function(){_0x478726[_0x7eab('0x15')](0xcc)[_0x7eab('0x16')]();});}};}function handleEntityNotFound(_0x33d010,_0x258c1f){return function(_0x482a88){if(!_0x482a88){_0x33d010[_0x7eab('0x14')](0x194);}return _0x482a88;};}function handleError(_0x22ce2d,_0x462f2){_0x462f2=_0x462f2||0x1f4;return function(_0x3e7d3c){logger[_0x7eab('0x22')](_0x3e7d3c['stack']);if(_0x3e7d3c['name']){delete _0x3e7d3c[_0x7eab('0x23')];}_0x22ce2d[_0x7eab('0x15')](_0x462f2)[_0x7eab('0x24')](_0x3e7d3c);};}exports[_0x7eab('0x25')]=function(_0x1bfc5e,_0x3caf62){var _0x411f48={},_0xf1de02={},_0x54f264={'count':0x0,'rows':[]};var _0x21741c=_[_0x7eab('0x26')](db[_0x7eab('0x27')][_0x7eab('0x28')],function(_0x433472){return{'name':_0x433472[_0x7eab('0x29')],'type':_0x433472[_0x7eab('0x2a')][_0x7eab('0x2b')]};});_0xf1de02[_0x7eab('0x2c')]=_[_0x7eab('0x26')](_0x21741c,_0x7eab('0x23'));_0xf1de02[_0x7eab('0x2d')]=_[_0x7eab('0x2e')](_0x1bfc5e[_0x7eab('0x2d')]);_0xf1de02[_0x7eab('0x2f')]=_['intersection'](_0xf1de02['model'],_0xf1de02[_0x7eab('0x2d')]);_0x411f48[_0x7eab('0x30')]=_[_0x7eab('0x31')](_0xf1de02['model'],qs[_0x7eab('0x32')](_0x1bfc5e[_0x7eab('0x2d')][_0x7eab('0x32')]));_0x411f48[_0x7eab('0x30')]=_0x411f48['attributes'][_0x7eab('0x33')]?_0x411f48[_0x7eab('0x30')]:_0xf1de02[_0x7eab('0x2c')];if(!_0x1bfc5e['query'][_0x7eab('0x34')]('nolimit')){_0x411f48[_0x7eab('0x19')]=qs[_0x7eab('0x19')](_0x1bfc5e[_0x7eab('0x2d')][_0x7eab('0x19')]);_0x411f48[_0x7eab('0x18')]=qs[_0x7eab('0x18')](_0x1bfc5e[_0x7eab('0x2d')][_0x7eab('0x18')]);}_0x411f48[_0x7eab('0x35')]=qs['sort'](_0x1bfc5e[_0x7eab('0x2d')][_0x7eab('0x36')]);_0x411f48[_0x7eab('0x37')]=qs[_0x7eab('0x2f')](_[_0x7eab('0x38')](_0x1bfc5e[_0x7eab('0x2d')],_0xf1de02[_0x7eab('0x2f')]),_0x21741c);if(_0x1bfc5e['query']['filter']){_0x411f48[_0x7eab('0x37')]=_[_0x7eab('0x39')](_0x411f48[_0x7eab('0x37')],{'$or':_[_0x7eab('0x26')](_0x21741c,function(_0x5841e9){if(_0x5841e9[_0x7eab('0x2a')]!=='VIRTUAL'){var _0x4fbdd4={};_0x4fbdd4[_0x5841e9['name']]={'$like':'%'+_0x1bfc5e[_0x7eab('0x2d')][_0x7eab('0x3a')]+'%'};return _0x4fbdd4;}})});}_0x411f48=_[_0x7eab('0x39')]({},_0x411f48,_0x1bfc5e[_0x7eab('0x3b')]);var _0x5105cd={'where':_0x411f48[_0x7eab('0x37')]};return db[_0x7eab('0x27')][_0x7eab('0x1a')](_0x5105cd)[_0x7eab('0x1f')](function(_0x599363){_0x54f264[_0x7eab('0x1a')]=_0x599363;if(_0x1bfc5e['query'][_0x7eab('0x3c')]){_0x411f48['include']=[{'all':!![]}];}return db[_0x7eab('0x27')][_0x7eab('0x3d')](_0x411f48);})['then'](function(_0x57cce2){_0x54f264[_0x7eab('0x3e')]=_0x57cce2;return _0x54f264;})[_0x7eab('0x1f')](respondWithFilteredResult(_0x3caf62,_0x411f48))[_0x7eab('0x3f')](handleError(_0x3caf62,null));};exports[_0x7eab('0x40')]=function(_0x16e585,_0x3a4627){var _0x1d01db={'raw':!![],'where':{'id':_0x16e585[_0x7eab('0x41')]['id']}},_0x4cef7e={};_0x4cef7e['model']=_[_0x7eab('0x2e')](db['Interval'][_0x7eab('0x28')]);_0x4cef7e['query']=_[_0x7eab('0x2e')](_0x16e585[_0x7eab('0x2d')]);_0x4cef7e[_0x7eab('0x2f')]=_[_0x7eab('0x31')](_0x4cef7e[_0x7eab('0x2c')],_0x4cef7e[_0x7eab('0x2d')]);_0x1d01db[_0x7eab('0x30')]=_[_0x7eab('0x31')](_0x4cef7e[_0x7eab('0x2c')],qs[_0x7eab('0x32')](_0x16e585[_0x7eab('0x2d')]['fields']));_0x1d01db[_0x7eab('0x30')]=_0x1d01db[_0x7eab('0x30')][_0x7eab('0x33')]?_0x1d01db[_0x7eab('0x30')]:_0x4cef7e['model'];if(_0x16e585[_0x7eab('0x2d')][_0x7eab('0x3c')]){_0x1d01db[_0x7eab('0x42')]=[{'all':!![]}];}_0x1d01db=_[_0x7eab('0x39')]({},_0x1d01db,_0x16e585[_0x7eab('0x3b')]);return db[_0x7eab('0x27')][_0x7eab('0x43')](_0x1d01db)[_0x7eab('0x1f')](handleEntityNotFound(_0x3a4627,null))[_0x7eab('0x1f')](respondWithResult(_0x3a4627,null))[_0x7eab('0x3f')](handleError(_0x3a4627,null));};exports['create']=function(_0x3437cb,_0x25d37e){return db[_0x7eab('0x27')][_0x7eab('0x44')](_0x3437cb[_0x7eab('0x45')],{})[_0x7eab('0x1f')](function(_0xf9c3af){var _0x1a1759=_0x3437cb[_0x7eab('0x46')][_0x7eab('0x20')]({'plain':!![]});if(!_0x1a1759)throw new Error(_0x7eab('0x47'));if(_0x1a1759[_0x7eab('0x48')]===_0x7eab('0x46')){var _0x32bfe0=_0xf9c3af[_0x7eab('0x20')]({'plain':!![]});var _0x2cd97e='Intervals';return db[_0x7eab('0x49')]['find']({'where':{'name':_0x2cd97e,'userProfileId':_0x1a1759['userProfileId']},'raw':!![]})['then'](function(_0xb8ed15){if(_0xb8ed15&&_0xb8ed15['autoAssociation']===0x0){return db[_0x7eab('0x4a')][_0x7eab('0x44')]({'name':_0x32bfe0['name'],'resourceId':_0x32bfe0['id'],'type':_0xb8ed15[_0x7eab('0x23')],'sectionId':_0xb8ed15['id']},{})[_0x7eab('0x1f')](function(){return _0xf9c3af;});}else{return _0xf9c3af;}})[_0x7eab('0x3f')](function(_0x5b31f1){logger[_0x7eab('0x22')](_0x7eab('0x4b'),_0x5b31f1);throw _0x5b31f1;});}return _0xf9c3af;})['then'](respondWithResult(_0x25d37e,0xc9))['catch'](handleError(_0x25d37e,null));};exports[_0x7eab('0x1e')]=function(_0x53c096,_0x479a36){if(_0x53c096[_0x7eab('0x45')]['id']){delete _0x53c096[_0x7eab('0x45')]['id'];}return db['Interval'][_0x7eab('0x43')]({'where':{'id':_0x53c096[_0x7eab('0x41')]['id']}})[_0x7eab('0x1f')](handleEntityNotFound(_0x479a36,null))[_0x7eab('0x1f')](saveUpdates(_0x53c096[_0x7eab('0x45')],null))[_0x7eab('0x1f')](respondWithResult(_0x479a36,null))[_0x7eab('0x3f')](handleError(_0x479a36,null));};exports['destroy']=function(_0x388406,_0x5c1113){return db[_0x7eab('0x27')][_0x7eab('0x43')]({'where':{'id':_0x388406['params']['id']}})[_0x7eab('0x1f')](handleEntityNotFound(_0x5c1113,null))[_0x7eab('0x1f')](removeEntity(_0x5c1113,null))['catch'](handleError(_0x5c1113,null));};exports['addInterval']=function(_0x5d30e2,_0x2137c0,_0x98e03b){if(_0x5d30e2[_0x7eab('0x45')]['id']){delete _0x5d30e2['body']['id'];}return db[_0x7eab('0x27')]['find']({'where':{'id':_0x5d30e2['params']['id']}})['then'](handleEntityNotFound(_0x2137c0,null))[_0x7eab('0x1f')](function(_0x97c5a6){if(_0x97c5a6){_0x5d30e2[_0x7eab('0x45')][_0x7eab('0x4c')]=_0x97c5a6['id'];return db['Interval'][_0x7eab('0x44')](_0x5d30e2[_0x7eab('0x45')]);}})[_0x7eab('0x1f')](respondWithResult(_0x2137c0,null))[_0x7eab('0x3f')](handleError(_0x2137c0,null));};exports[_0x7eab('0x4d')]=function(_0x5928fa,_0x2924de,_0x5d7864){var _0x4c4dfb={};var _0x471684={};var _0x426252;var _0x193744;return db[_0x7eab('0x27')][_0x7eab('0x4e')]({'where':{'id':_0x5928fa['params']['id']}})[_0x7eab('0x1f')](handleEntityNotFound(_0x2924de,null))[_0x7eab('0x1f')](function(_0x36f6a7){if(_0x36f6a7){_0x426252=_0x36f6a7;_0x471684[_0x7eab('0x2c')]=_['keys'](db[_0x7eab('0x27')][_0x7eab('0x28')]);_0x471684[_0x7eab('0x2d')]=_[_0x7eab('0x2e')](_0x5928fa['query']);_0x471684[_0x7eab('0x2f')]=_[_0x7eab('0x31')](_0x471684[_0x7eab('0x2c')],_0x471684[_0x7eab('0x2d')]);_0x4c4dfb[_0x7eab('0x30')]=_[_0x7eab('0x31')](_0x471684[_0x7eab('0x2c')],qs['fields'](_0x5928fa['query'][_0x7eab('0x32')]));_0x4c4dfb[_0x7eab('0x30')]=_0x4c4dfb['attributes']['length']?_0x4c4dfb[_0x7eab('0x30')]:_0x471684[_0x7eab('0x2c')];_0x4c4dfb[_0x7eab('0x35')]=qs[_0x7eab('0x36')](_0x5928fa[_0x7eab('0x2d')][_0x7eab('0x36')]);_0x4c4dfb[_0x7eab('0x37')]=qs['filters'](_[_0x7eab('0x38')](_0x5928fa[_0x7eab('0x2d')],_0x471684['filters']));if(_0x5928fa['query'][_0x7eab('0x3a')]){_0x4c4dfb[_0x7eab('0x37')]=_['merge'](_0x4c4dfb[_0x7eab('0x37')],{'$or':_[_0x7eab('0x26')](_0x4c4dfb['attributes'],function(_0x3fa99b){var _0x4f3ac9={};_0x4f3ac9[_0x3fa99b]={'$like':'%'+_0x5928fa[_0x7eab('0x2d')][_0x7eab('0x3a')]+'%'};return _0x4f3ac9;})});}_0x4c4dfb=_[_0x7eab('0x39')]({},_0x4c4dfb,_0x5928fa[_0x7eab('0x3b')]);return _0x426252['getIntervals'](_0x4c4dfb);}})[_0x7eab('0x1f')](function(_0x435173){if(_0x435173){_0x193744=_0x435173[_0x7eab('0x33')];if(!_0x5928fa[_0x7eab('0x2d')]['hasOwnProperty'](_0x7eab('0x4f'))){_0x4c4dfb[_0x7eab('0x19')]=qs[_0x7eab('0x19')](_0x5928fa[_0x7eab('0x2d')][_0x7eab('0x19')]);_0x4c4dfb['offset']=qs[_0x7eab('0x18')](_0x5928fa['query'][_0x7eab('0x18')]);}return _0x426252[_0x7eab('0x4d')](_0x4c4dfb);}})[_0x7eab('0x1f')](function(_0x39b66f){if(_0x39b66f){return _0x39b66f?{'count':_0x193744,'rows':_0x39b66f}:null;}})[_0x7eab('0x1f')](respondWithResult(_0x2924de,null))[_0x7eab('0x3f')](handleError(_0x2924de,null));};exports[_0x7eab('0x50')]=function(_0x27384e,_0x519d3c,_0x2e9988){return db[_0x7eab('0x27')][_0x7eab('0x4e')]({'where':{'id':_0x27384e['params']['id']}})[_0x7eab('0x1f')](handleEntityNotFound(_0x519d3c,null))[_0x7eab('0x1f')](function(_0x226bd6){if(_0x226bd6){return db[_0x7eab('0x51')][_0x7eab('0x52')](function(_0x5916a1){return db['Interval']['destroy']({'where':{'IntervalId':_0x27384e[_0x7eab('0x41')]['id']},'transaction':_0x5916a1})[_0x7eab('0x1f')](function(_0x9de6b2){var _0x171d77=_['map'](_0x27384e[_0x7eab('0x45')],function(_0x445d7d){delete _0x445d7d['id'];_0x445d7d[_0x7eab('0x4c')]=_0x27384e[_0x7eab('0x41')]['id'];return _0x445d7d;});return db[_0x7eab('0x27')][_0x7eab('0x53')](_0x171d77,{'transaction':_0x5916a1});});})[_0x7eab('0x1f')](function(){return db[_0x7eab('0x27')][_0x7eab('0x3d')]({'where':{'IntervalId':_0x27384e['params']['id']}});});}})[_0x7eab('0x1f')](respondWithResult(_0x519d3c,null))['catch'](handleError(_0x519d3c,null));};