Built motion from commit ff426b3f.|2.6.29
[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 _0x3b99=['../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../mysqldb','../../components/extensions/rewrite','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','update','destroy','get','then','end','stack','name','index','map','Interval','rawAttributes','type','model','query','keys','filters','intersection','fields','attributes','length','order','sort','where','pick','filter','merge','VIRTUAL','options','include','findAll','rows','catch','show','params','find','create','role','Intervals','UserProfileSection','autoAssociation','UserProfileResource','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','addInterval','IntervalId','getIntervals','findOne','hasOwnProperty','nolimit','transaction','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','path','sox','ejs','fs-extra','squel','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service'];(function(_0x5f47b6,_0xdfe79d){var _0x31bb2d=function(_0x32e3ca){while(--_0x32e3ca){_0x5f47b6['push'](_0x5f47b6['shift']());}};_0x31bb2d(++_0xdfe79d);}(_0x3b99,0x9b));var _0x93b9=function(_0x93b863,_0x2bbe3b){_0x93b863=_0x93b863-0x0;var _0x1dff77=_0x3b99[_0x93b863];return _0x1dff77;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x93b9('0x0'));var zipdir=require(_0x93b9('0x1'));var jsonpatch=require(_0x93b9('0x2'));var rp=require(_0x93b9('0x3'));var moment=require(_0x93b9('0x4'));var BPromise=require(_0x93b9('0x5'));var Mustache=require('mustache');var util=require('util');var path=require(_0x93b9('0x6'));var sox=require(_0x93b9('0x7'));var csv=require('to-csv');var ejs=require(_0x93b9('0x8'));var fs=require('fs');var fs_extra=require(_0x93b9('0x9'));var _=require('lodash');var squel=require(_0x93b9('0xa'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x93b9('0xb'));var toCsv=require(_0x93b9('0xc'));var querystring=require(_0x93b9('0xd'));var Papa=require(_0x93b9('0xe'));var Redis=require(_0x93b9('0xf'));var authService=require(_0x93b9('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0x93b9('0x11'));var hardwareService=require(_0x93b9('0x12'));var logger=require(_0x93b9('0x13'))(_0x93b9('0x14'));var utils=require('../../config/utils');var config=require(_0x93b9('0x15'));var licenseUtil=require('../../config/license/util');var db=require(_0x93b9('0x16'))['db'];var extensions=require(_0x93b9('0x17'));function respondWithStatusCode(_0x21e937,_0x5e29a9){_0x5e29a9=_0x5e29a9||0xcc;return function(_0x3556b5){if(_0x3556b5){return _0x21e937[_0x93b9('0x18')](_0x5e29a9);}return _0x21e937[_0x93b9('0x19')](_0x5e29a9)['end']();};}function respondWithResult(_0x8cb426,_0x3cdf1d){_0x3cdf1d=_0x3cdf1d||0xc8;return function(_0x45decb){if(_0x45decb){return _0x8cb426['status'](_0x3cdf1d)[_0x93b9('0x1a')](_0x45decb);}};}function respondWithFilteredResult(_0x205afd,_0x1789cf){return function(_0x1941fa){if(_0x1941fa){var _0x32609b=typeof _0x1789cf[_0x93b9('0x1b')]===_0x93b9('0x1c')&&typeof _0x1789cf[_0x93b9('0x1d')]===_0x93b9('0x1c');var _0x2fbca3=_0x1941fa[_0x93b9('0x1e')];var _0x8cd9d6=_0x32609b?0x0:_0x1789cf[_0x93b9('0x1b')];var _0xfb5300=_0x32609b?_0x1941fa[_0x93b9('0x1e')]:_0x1789cf['offset']+_0x1789cf[_0x93b9('0x1d')];var _0x11e1d1;if(_0xfb5300>=_0x2fbca3){_0xfb5300=_0x2fbca3;_0x11e1d1=0xc8;}else{_0x11e1d1=0xce;}_0x205afd[_0x93b9('0x19')](_0x11e1d1);return _0x205afd[_0x93b9('0x1f')](_0x93b9('0x20'),_0x8cd9d6+'-'+_0xfb5300+'/'+_0x2fbca3)[_0x93b9('0x1a')](_0x1941fa);}return null;};}function patchUpdates(_0xcb2739){return function(_0x336237){try{jsonpatch[_0x93b9('0x21')](_0x336237,_0xcb2739,!![]);}catch(_0x5329f3){return BPromise[_0x93b9('0x22')](_0x5329f3);}return _0x336237['save']();};}function saveUpdates(_0xb73d22,_0x14342c){return function(_0x375208){if(_0x375208){return _0x375208[_0x93b9('0x23')](_0xb73d22)['then'](function(_0x4775bd){return _0x4775bd;});}return null;};}function removeEntity(_0x35c2a2,_0x30f5b2){return function(_0xe43b34){if(_0xe43b34){return _0xe43b34[_0x93b9('0x24')]()['then'](function(){var _0x1863ce=_0xe43b34[_0x93b9('0x25')]({'plain':!![]});var _0xbb454e='Intervals';return db['UserProfileResource'][_0x93b9('0x24')]({'where':{'type':_0xbb454e,'resourceId':_0x1863ce['id']}})[_0x93b9('0x26')](function(){return _0xe43b34;});})[_0x93b9('0x26')](function(){_0x35c2a2[_0x93b9('0x19')](0xcc)[_0x93b9('0x27')]();});}};}function handleEntityNotFound(_0x197ba9,_0x3d5005){return function(_0x570ef9){if(!_0x570ef9){_0x197ba9[_0x93b9('0x18')](0x194);}return _0x570ef9;};}function handleError(_0x279047,_0x457546){_0x457546=_0x457546||0x1f4;return function(_0x2946ed){logger['error'](_0x2946ed[_0x93b9('0x28')]);if(_0x2946ed[_0x93b9('0x29')]){delete _0x2946ed[_0x93b9('0x29')];}_0x279047[_0x93b9('0x19')](_0x457546)['send'](_0x2946ed);};}exports[_0x93b9('0x2a')]=function(_0x4228b4,_0x36a7f8){var _0x940293={},_0x1b0eb6={},_0x2d9b1e={'count':0x0,'rows':[]};var _0x282e47=_[_0x93b9('0x2b')](db[_0x93b9('0x2c')][_0x93b9('0x2d')],function(_0x24e70c){return{'name':_0x24e70c['fieldName'],'type':_0x24e70c[_0x93b9('0x2e')]['key']};});_0x1b0eb6[_0x93b9('0x2f')]=_[_0x93b9('0x2b')](_0x282e47,_0x93b9('0x29'));_0x1b0eb6[_0x93b9('0x30')]=_[_0x93b9('0x31')](_0x4228b4[_0x93b9('0x30')]);_0x1b0eb6[_0x93b9('0x32')]=_[_0x93b9('0x33')](_0x1b0eb6[_0x93b9('0x2f')],_0x1b0eb6[_0x93b9('0x30')]);_0x940293['attributes']=_[_0x93b9('0x33')](_0x1b0eb6[_0x93b9('0x2f')],qs['fields'](_0x4228b4[_0x93b9('0x30')][_0x93b9('0x34')]));_0x940293[_0x93b9('0x35')]=_0x940293['attributes'][_0x93b9('0x36')]?_0x940293[_0x93b9('0x35')]:_0x1b0eb6[_0x93b9('0x2f')];if(!_0x4228b4[_0x93b9('0x30')]['hasOwnProperty']('nolimit')){_0x940293[_0x93b9('0x1d')]=qs[_0x93b9('0x1d')](_0x4228b4['query'][_0x93b9('0x1d')]);_0x940293['offset']=qs[_0x93b9('0x1b')](_0x4228b4[_0x93b9('0x30')][_0x93b9('0x1b')]);}_0x940293[_0x93b9('0x37')]=qs[_0x93b9('0x38')](_0x4228b4[_0x93b9('0x30')][_0x93b9('0x38')]);_0x940293[_0x93b9('0x39')]=qs[_0x93b9('0x32')](_[_0x93b9('0x3a')](_0x4228b4[_0x93b9('0x30')],_0x1b0eb6['filters']),_0x282e47);if(_0x4228b4[_0x93b9('0x30')][_0x93b9('0x3b')]){_0x940293[_0x93b9('0x39')]=_[_0x93b9('0x3c')](_0x940293[_0x93b9('0x39')],{'$or':_[_0x93b9('0x2b')](_0x282e47,function(_0x252974){if(_0x252974[_0x93b9('0x2e')]!==_0x93b9('0x3d')){var _0x823cdd={};_0x823cdd[_0x252974['name']]={'$like':'%'+_0x4228b4[_0x93b9('0x30')][_0x93b9('0x3b')]+'%'};return _0x823cdd;}})});}_0x940293=_['merge']({},_0x940293,_0x4228b4[_0x93b9('0x3e')]);var _0x1d3508={'where':_0x940293[_0x93b9('0x39')]};return db['Interval'][_0x93b9('0x1e')](_0x1d3508)[_0x93b9('0x26')](function(_0x4ffe00){_0x2d9b1e['count']=_0x4ffe00;if(_0x4228b4[_0x93b9('0x30')]['includeAll']){_0x940293[_0x93b9('0x3f')]=[{'all':!![]}];}return db[_0x93b9('0x2c')][_0x93b9('0x40')](_0x940293);})[_0x93b9('0x26')](function(_0x11fc63){_0x2d9b1e[_0x93b9('0x41')]=_0x11fc63;return _0x2d9b1e;})[_0x93b9('0x26')](respondWithFilteredResult(_0x36a7f8,_0x940293))[_0x93b9('0x42')](handleError(_0x36a7f8,null));};exports[_0x93b9('0x43')]=function(_0x24b740,_0x5676fc){var _0x589ba4={'raw':!![],'where':{'id':_0x24b740[_0x93b9('0x44')]['id']}},_0x3356a1={};_0x3356a1[_0x93b9('0x2f')]=_['keys'](db['Interval']['rawAttributes']);_0x3356a1[_0x93b9('0x30')]=_[_0x93b9('0x31')](_0x24b740[_0x93b9('0x30')]);_0x3356a1[_0x93b9('0x32')]=_['intersection'](_0x3356a1[_0x93b9('0x2f')],_0x3356a1[_0x93b9('0x30')]);_0x589ba4['attributes']=_[_0x93b9('0x33')](_0x3356a1[_0x93b9('0x2f')],qs[_0x93b9('0x34')](_0x24b740[_0x93b9('0x30')][_0x93b9('0x34')]));_0x589ba4[_0x93b9('0x35')]=_0x589ba4[_0x93b9('0x35')][_0x93b9('0x36')]?_0x589ba4['attributes']:_0x3356a1[_0x93b9('0x2f')];if(_0x24b740[_0x93b9('0x30')]['includeAll']){_0x589ba4[_0x93b9('0x3f')]=[{'all':!![]}];}_0x589ba4=_[_0x93b9('0x3c')]({},_0x589ba4,_0x24b740[_0x93b9('0x3e')]);return db[_0x93b9('0x2c')][_0x93b9('0x45')](_0x589ba4)[_0x93b9('0x26')](handleEntityNotFound(_0x5676fc,null))[_0x93b9('0x26')](respondWithResult(_0x5676fc,null))[_0x93b9('0x42')](handleError(_0x5676fc,null));};exports[_0x93b9('0x46')]=function(_0x508137,_0x31d17c){return db['Interval'][_0x93b9('0x46')](_0x508137['body'],{})['then'](function(_0x133ff6){var _0x81966c=_0x508137['user'][_0x93b9('0x25')]({'plain':!![]});if(!_0x81966c)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x81966c[_0x93b9('0x47')]==='user'){var _0x14e879=_0x133ff6[_0x93b9('0x25')]({'plain':!![]});var _0x2912d3=_0x93b9('0x48');return db[_0x93b9('0x49')]['find']({'where':{'name':_0x2912d3,'userProfileId':_0x81966c['userProfileId']},'raw':!![]})[_0x93b9('0x26')](function(_0x41c330){if(_0x41c330&&_0x41c330[_0x93b9('0x4a')]===0x0){return db[_0x93b9('0x4b')]['create']({'name':_0x14e879[_0x93b9('0x29')],'resourceId':_0x14e879['id'],'type':_0x41c330[_0x93b9('0x29')],'sectionId':_0x41c330['id']},{})[_0x93b9('0x26')](function(){return _0x133ff6;});}else{return _0x133ff6;}})[_0x93b9('0x42')](function(_0x4ab6ea){logger[_0x93b9('0x4c')](_0x93b9('0x4d'),_0x4ab6ea);throw _0x4ab6ea;});}return _0x133ff6;})[_0x93b9('0x26')](respondWithResult(_0x31d17c,0xc9))[_0x93b9('0x42')](handleError(_0x31d17c,null));};exports[_0x93b9('0x23')]=function(_0x2029ef,_0x20b2f2){if(_0x2029ef[_0x93b9('0x4e')]['id']){delete _0x2029ef[_0x93b9('0x4e')]['id'];}return db['Interval'][_0x93b9('0x45')]({'where':{'id':_0x2029ef[_0x93b9('0x44')]['id']}})[_0x93b9('0x26')](handleEntityNotFound(_0x20b2f2,null))['then'](saveUpdates(_0x2029ef['body'],null))['then'](respondWithResult(_0x20b2f2,null))[_0x93b9('0x42')](handleError(_0x20b2f2,null));};exports[_0x93b9('0x24')]=function(_0xe64dca,_0x42b5d8){return db['Interval'][_0x93b9('0x45')]({'where':{'id':_0xe64dca[_0x93b9('0x44')]['id']}})['then'](handleEntityNotFound(_0x42b5d8,null))[_0x93b9('0x26')](removeEntity(_0x42b5d8,null))[_0x93b9('0x42')](handleError(_0x42b5d8,null));};exports[_0x93b9('0x4f')]=function(_0x350c8e,_0x450b7f,_0x5d5d04){if(_0x350c8e[_0x93b9('0x4e')]['id']){delete _0x350c8e[_0x93b9('0x4e')]['id'];}return db[_0x93b9('0x2c')][_0x93b9('0x45')]({'where':{'id':_0x350c8e['params']['id']}})[_0x93b9('0x26')](handleEntityNotFound(_0x450b7f,null))[_0x93b9('0x26')](function(_0x4bc9af){if(_0x4bc9af){_0x350c8e[_0x93b9('0x4e')][_0x93b9('0x50')]=_0x4bc9af['id'];return db[_0x93b9('0x2c')][_0x93b9('0x46')](_0x350c8e[_0x93b9('0x4e')]);}})[_0x93b9('0x26')](respondWithResult(_0x450b7f,null))['catch'](handleError(_0x450b7f,null));};exports[_0x93b9('0x51')]=function(_0x3d4941,_0x466440,_0x5a1870){var _0x386fe7={};var _0x3d69a5={};var _0x1b5484;var _0x30ad11;return db[_0x93b9('0x2c')][_0x93b9('0x52')]({'where':{'id':_0x3d4941[_0x93b9('0x44')]['id']}})[_0x93b9('0x26')](handleEntityNotFound(_0x466440,null))[_0x93b9('0x26')](function(_0x519ea8){if(_0x519ea8){_0x1b5484=_0x519ea8;_0x3d69a5[_0x93b9('0x2f')]=_[_0x93b9('0x31')](db[_0x93b9('0x2c')][_0x93b9('0x2d')]);_0x3d69a5[_0x93b9('0x30')]=_[_0x93b9('0x31')](_0x3d4941[_0x93b9('0x30')]);_0x3d69a5[_0x93b9('0x32')]=_[_0x93b9('0x33')](_0x3d69a5[_0x93b9('0x2f')],_0x3d69a5[_0x93b9('0x30')]);_0x386fe7[_0x93b9('0x35')]=_['intersection'](_0x3d69a5['model'],qs[_0x93b9('0x34')](_0x3d4941[_0x93b9('0x30')][_0x93b9('0x34')]));_0x386fe7[_0x93b9('0x35')]=_0x386fe7[_0x93b9('0x35')][_0x93b9('0x36')]?_0x386fe7[_0x93b9('0x35')]:_0x3d69a5['model'];_0x386fe7['order']=qs['sort'](_0x3d4941[_0x93b9('0x30')][_0x93b9('0x38')]);_0x386fe7[_0x93b9('0x39')]=qs[_0x93b9('0x32')](_['pick'](_0x3d4941[_0x93b9('0x30')],_0x3d69a5[_0x93b9('0x32')]));if(_0x3d4941[_0x93b9('0x30')]['filter']){_0x386fe7[_0x93b9('0x39')]=_[_0x93b9('0x3c')](_0x386fe7[_0x93b9('0x39')],{'$or':_[_0x93b9('0x2b')](_0x386fe7['attributes'],function(_0x1fec3f){var _0x21ae2d={};_0x21ae2d[_0x1fec3f]={'$like':'%'+_0x3d4941[_0x93b9('0x30')][_0x93b9('0x3b')]+'%'};return _0x21ae2d;})});}_0x386fe7=_[_0x93b9('0x3c')]({},_0x386fe7,_0x3d4941['options']);return _0x1b5484[_0x93b9('0x51')](_0x386fe7);}})[_0x93b9('0x26')](function(_0x7e15fa){if(_0x7e15fa){_0x30ad11=_0x7e15fa[_0x93b9('0x36')];if(!_0x3d4941[_0x93b9('0x30')][_0x93b9('0x53')](_0x93b9('0x54'))){_0x386fe7['limit']=qs[_0x93b9('0x1d')](_0x3d4941[_0x93b9('0x30')][_0x93b9('0x1d')]);_0x386fe7[_0x93b9('0x1b')]=qs[_0x93b9('0x1b')](_0x3d4941[_0x93b9('0x30')][_0x93b9('0x1b')]);}return _0x1b5484['getIntervals'](_0x386fe7);}})['then'](function(_0x4f350c){if(_0x4f350c){return _0x4f350c?{'count':_0x30ad11,'rows':_0x4f350c}:null;}})['then'](respondWithResult(_0x466440,null))[_0x93b9('0x42')](handleError(_0x466440,null));};exports['addIntervals']=function(_0x1e7bd1,_0x476da5,_0x39e84b){return db[_0x93b9('0x2c')]['findOne']({'where':{'id':_0x1e7bd1['params']['id']}})[_0x93b9('0x26')](handleEntityNotFound(_0x476da5,null))[_0x93b9('0x26')](function(_0x2c9555){if(_0x2c9555){return db['sequelize'][_0x93b9('0x55')](function(_0x1e7d30){return db[_0x93b9('0x2c')][_0x93b9('0x24')]({'where':{'IntervalId':_0x1e7bd1['params']['id']},'transaction':_0x1e7d30})[_0x93b9('0x26')](function(_0x2d2c5b){var _0x1acc39=_[_0x93b9('0x2b')](_0x1e7bd1['body'],function(_0x916576){delete _0x916576['id'];_0x916576[_0x93b9('0x50')]=_0x1e7bd1[_0x93b9('0x44')]['id'];return _0x916576;});return db[_0x93b9('0x2c')]['bulkCreate'](_0x1acc39,{'transaction':_0x1e7d30});});})['then'](function(){return db[_0x93b9('0x2c')][_0x93b9('0x40')]({'where':{'IntervalId':_0x1e7bd1[_0x93b9('0x44')]['id']}});});}})['then'](respondWithResult(_0x476da5,null))[_0x93b9('0x42')](handleError(_0x476da5,null));};