Built motion from commit 64440dd5.|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 _0xdc54=['role','find','userProfileId','autoAssociation','UserProfileResource','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','addInterval','IntervalId','findOne','sort','getIntervals','addIntervals','transaction','bulkCreate','findAll','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','lodash','crypto','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','api','../../config/license/util','sendStatus','status','undefined','limit','count','offset','set','Content-Range','reject','save','update','then','destroy','get','Intervals','stack','name','send','index','map','rawAttributes','fieldName','key','query','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','where','pick','type','VIRTUAL','filter','merge','Interval','includeAll','include','rows','catch','show','params','keys','options','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user'];(function(_0x391929,_0x204a58){var _0x30a04b=function(_0x5a752d){while(--_0x5a752d){_0x391929['push'](_0x391929['shift']());}};_0x30a04b(++_0x204a58);}(_0xdc54,0x174));var _0x4dc5=function(_0x67b581,_0x327fd0){_0x67b581=_0x67b581-0x0;var _0x24e142=_0xdc54[_0x67b581];return _0x24e142;};'use strict';var emlformat=require(_0x4dc5('0x0'));var rimraf=require(_0x4dc5('0x1'));var zipdir=require(_0x4dc5('0x2'));var jsonpatch=require(_0x4dc5('0x3'));var rp=require('request-promise');var moment=require(_0x4dc5('0x4'));var BPromise=require(_0x4dc5('0x5'));var Mustache=require(_0x4dc5('0x6'));var util=require('util');var path=require(_0x4dc5('0x7'));var sox=require(_0x4dc5('0x8'));var csv=require(_0x4dc5('0x9'));var ejs=require(_0x4dc5('0xa'));var fs=require('fs');var fs_extra=require(_0x4dc5('0xb'));var _=require(_0x4dc5('0xc'));var squel=require('squel');var crypto=require(_0x4dc5('0xd'));var jsforce=require('jsforce');var deskjs=require(_0x4dc5('0xe'));var toCsv=require('to-csv');var querystring=require(_0x4dc5('0xf'));var Papa=require('papaparse');var Redis=require(_0x4dc5('0x10'));var authService=require(_0x4dc5('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0x4dc5('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x4dc5('0x13'))(_0x4dc5('0x14'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x4dc5('0x15'));var db=require('../../mysqldb')['db'];var extensions=require('../../components/extensions/rewrite');function respondWithStatusCode(_0x44995b,_0x4cbf68){_0x4cbf68=_0x4cbf68||0xcc;return function(_0x27851a){if(_0x27851a){return _0x44995b[_0x4dc5('0x16')](_0x4cbf68);}return _0x44995b[_0x4dc5('0x17')](_0x4cbf68)['end']();};}function respondWithResult(_0x3cd904,_0x5b93d2){_0x5b93d2=_0x5b93d2||0xc8;return function(_0x1bead3){if(_0x1bead3){return _0x3cd904[_0x4dc5('0x17')](_0x5b93d2)['json'](_0x1bead3);}};}function respondWithFilteredResult(_0x7416ac,_0x1885fc){return function(_0x414cbe){if(_0x414cbe){var _0x863ba6=typeof _0x1885fc['offset']===_0x4dc5('0x18')&&typeof _0x1885fc[_0x4dc5('0x19')]===_0x4dc5('0x18');var _0x5a6ff7=_0x414cbe[_0x4dc5('0x1a')];var _0x5dfe2c=_0x863ba6?0x0:_0x1885fc[_0x4dc5('0x1b')];var _0xa51bc9=_0x863ba6?_0x414cbe[_0x4dc5('0x1a')]:_0x1885fc['offset']+_0x1885fc[_0x4dc5('0x19')];var _0xbb1333;if(_0xa51bc9>=_0x5a6ff7){_0xa51bc9=_0x5a6ff7;_0xbb1333=0xc8;}else{_0xbb1333=0xce;}_0x7416ac[_0x4dc5('0x17')](_0xbb1333);return _0x7416ac[_0x4dc5('0x1c')](_0x4dc5('0x1d'),_0x5dfe2c+'-'+_0xa51bc9+'/'+_0x5a6ff7)['json'](_0x414cbe);}return null;};}function patchUpdates(_0x1e7fed){return function(_0x37a69a){try{jsonpatch['apply'](_0x37a69a,_0x1e7fed,!![]);}catch(_0x2fd568){return BPromise[_0x4dc5('0x1e')](_0x2fd568);}return _0x37a69a[_0x4dc5('0x1f')]();};}function saveUpdates(_0x417fd6,_0x22352e){return function(_0x1e69ee){if(_0x1e69ee){return _0x1e69ee[_0x4dc5('0x20')](_0x417fd6)[_0x4dc5('0x21')](function(_0x1d03ef){return _0x1d03ef;});}return null;};}function removeEntity(_0x2a4b57,_0x2c2ed6){return function(_0x3a971e){if(_0x3a971e){return _0x3a971e[_0x4dc5('0x22')]()[_0x4dc5('0x21')](function(){var _0x582ae6=_0x3a971e[_0x4dc5('0x23')]({'plain':!![]});var _0x44309f=_0x4dc5('0x24');return db['UserProfileResource']['destroy']({'where':{'type':_0x44309f,'resourceId':_0x582ae6['id']}})['then'](function(){return _0x3a971e;});})[_0x4dc5('0x21')](function(){_0x2a4b57[_0x4dc5('0x17')](0xcc)['end']();});}};}function handleEntityNotFound(_0x1a16db,_0x4fe658){return function(_0x7f30fd){if(!_0x7f30fd){_0x1a16db[_0x4dc5('0x16')](0x194);}return _0x7f30fd;};}function handleError(_0x31672d,_0x46f722){_0x46f722=_0x46f722||0x1f4;return function(_0x42819e){logger['error'](_0x42819e[_0x4dc5('0x25')]);if(_0x42819e[_0x4dc5('0x26')]){delete _0x42819e[_0x4dc5('0x26')];}_0x31672d['status'](_0x46f722)[_0x4dc5('0x27')](_0x42819e);};}exports[_0x4dc5('0x28')]=function(_0x1fe7f7,_0x16f150){var _0x633733={},_0x5c2fa0={},_0xb849c5={'count':0x0,'rows':[]};var _0x11eee2=_[_0x4dc5('0x29')](db['Interval'][_0x4dc5('0x2a')],function(_0x35d713){return{'name':_0x35d713[_0x4dc5('0x2b')],'type':_0x35d713['type'][_0x4dc5('0x2c')]};});_0x5c2fa0['model']=_[_0x4dc5('0x29')](_0x11eee2,_0x4dc5('0x26'));_0x5c2fa0[_0x4dc5('0x2d')]=_['keys'](_0x1fe7f7['query']);_0x5c2fa0[_0x4dc5('0x2e')]=_[_0x4dc5('0x2f')](_0x5c2fa0[_0x4dc5('0x30')],_0x5c2fa0['query']);_0x633733[_0x4dc5('0x31')]=_[_0x4dc5('0x2f')](_0x5c2fa0[_0x4dc5('0x30')],qs['fields'](_0x1fe7f7[_0x4dc5('0x2d')][_0x4dc5('0x32')]));_0x633733['attributes']=_0x633733[_0x4dc5('0x31')][_0x4dc5('0x33')]?_0x633733['attributes']:_0x5c2fa0[_0x4dc5('0x30')];if(!_0x1fe7f7['query'][_0x4dc5('0x34')](_0x4dc5('0x35'))){_0x633733[_0x4dc5('0x19')]=qs[_0x4dc5('0x19')](_0x1fe7f7['query'][_0x4dc5('0x19')]);_0x633733[_0x4dc5('0x1b')]=qs['offset'](_0x1fe7f7[_0x4dc5('0x2d')][_0x4dc5('0x1b')]);}_0x633733['order']=qs['sort'](_0x1fe7f7[_0x4dc5('0x2d')]['sort']);_0x633733[_0x4dc5('0x36')]=qs['filters'](_[_0x4dc5('0x37')](_0x1fe7f7[_0x4dc5('0x2d')],_0x5c2fa0[_0x4dc5('0x2e')]),_0x11eee2);if(_0x1fe7f7['query']['filter']){_0x633733[_0x4dc5('0x36')]=_['merge'](_0x633733[_0x4dc5('0x36')],{'$or':_[_0x4dc5('0x29')](_0x11eee2,function(_0x49e9ff){if(_0x49e9ff[_0x4dc5('0x38')]!==_0x4dc5('0x39')){var _0x32dea7={};_0x32dea7[_0x49e9ff[_0x4dc5('0x26')]]={'$like':'%'+_0x1fe7f7[_0x4dc5('0x2d')][_0x4dc5('0x3a')]+'%'};return _0x32dea7;}})});}_0x633733=_[_0x4dc5('0x3b')]({},_0x633733,_0x1fe7f7['options']);var _0x47b071={'where':_0x633733[_0x4dc5('0x36')]};return db[_0x4dc5('0x3c')][_0x4dc5('0x1a')](_0x47b071)['then'](function(_0x42f7f8){_0xb849c5[_0x4dc5('0x1a')]=_0x42f7f8;if(_0x1fe7f7[_0x4dc5('0x2d')][_0x4dc5('0x3d')]){_0x633733[_0x4dc5('0x3e')]=[{'all':!![]}];}return db[_0x4dc5('0x3c')]['findAll'](_0x633733);})[_0x4dc5('0x21')](function(_0x376f03){_0xb849c5[_0x4dc5('0x3f')]=_0x376f03;return _0xb849c5;})[_0x4dc5('0x21')](respondWithFilteredResult(_0x16f150,_0x633733))[_0x4dc5('0x40')](handleError(_0x16f150,null));};exports[_0x4dc5('0x41')]=function(_0x379a18,_0x394959){var _0x1d4934={'raw':!![],'where':{'id':_0x379a18[_0x4dc5('0x42')]['id']}},_0x33e9df={};_0x33e9df[_0x4dc5('0x30')]=_[_0x4dc5('0x43')](db[_0x4dc5('0x3c')][_0x4dc5('0x2a')]);_0x33e9df[_0x4dc5('0x2d')]=_[_0x4dc5('0x43')](_0x379a18[_0x4dc5('0x2d')]);_0x33e9df[_0x4dc5('0x2e')]=_['intersection'](_0x33e9df['model'],_0x33e9df[_0x4dc5('0x2d')]);_0x1d4934[_0x4dc5('0x31')]=_[_0x4dc5('0x2f')](_0x33e9df[_0x4dc5('0x30')],qs[_0x4dc5('0x32')](_0x379a18['query'][_0x4dc5('0x32')]));_0x1d4934[_0x4dc5('0x31')]=_0x1d4934[_0x4dc5('0x31')][_0x4dc5('0x33')]?_0x1d4934[_0x4dc5('0x31')]:_0x33e9df[_0x4dc5('0x30')];if(_0x379a18[_0x4dc5('0x2d')]['includeAll']){_0x1d4934['include']=[{'all':!![]}];}_0x1d4934=_[_0x4dc5('0x3b')]({},_0x1d4934,_0x379a18[_0x4dc5('0x44')]);return db[_0x4dc5('0x3c')]['find'](_0x1d4934)['then'](handleEntityNotFound(_0x394959,null))[_0x4dc5('0x21')](respondWithResult(_0x394959,null))['catch'](handleError(_0x394959,null));};exports[_0x4dc5('0x45')]=function(_0x58148d,_0x3fa870){return db['Interval'][_0x4dc5('0x45')](_0x58148d[_0x4dc5('0x46')],{})[_0x4dc5('0x21')](function(_0x21a511){var _0x26024f=_0x58148d[_0x4dc5('0x47')][_0x4dc5('0x23')]({'plain':!![]});if(!_0x26024f)throw new Error(_0x4dc5('0x48'));if(_0x26024f[_0x4dc5('0x49')]===_0x4dc5('0x47')){var _0x43bc4d=_0x21a511['get']({'plain':!![]});var _0x5b3a3c=_0x4dc5('0x24');return db['UserProfileSection'][_0x4dc5('0x4a')]({'where':{'name':_0x5b3a3c,'userProfileId':_0x26024f[_0x4dc5('0x4b')]},'raw':!![]})[_0x4dc5('0x21')](function(_0x278168){if(_0x278168&&_0x278168[_0x4dc5('0x4c')]===0x0){return db[_0x4dc5('0x4d')][_0x4dc5('0x45')]({'name':_0x43bc4d[_0x4dc5('0x26')],'resourceId':_0x43bc4d['id'],'type':_0x278168[_0x4dc5('0x26')],'sectionId':_0x278168['id']},{})[_0x4dc5('0x21')](function(){return _0x21a511;});}else{return _0x21a511;}})[_0x4dc5('0x40')](function(_0x45433b){logger[_0x4dc5('0x4e')](_0x4dc5('0x4f'),_0x45433b);throw _0x45433b;});}return _0x21a511;})[_0x4dc5('0x21')](respondWithResult(_0x3fa870,0xc9))[_0x4dc5('0x40')](handleError(_0x3fa870,null));};exports[_0x4dc5('0x20')]=function(_0x474d9d,_0x595d46){if(_0x474d9d[_0x4dc5('0x46')]['id']){delete _0x474d9d[_0x4dc5('0x46')]['id'];}return db[_0x4dc5('0x3c')][_0x4dc5('0x4a')]({'where':{'id':_0x474d9d['params']['id']}})[_0x4dc5('0x21')](handleEntityNotFound(_0x595d46,null))['then'](saveUpdates(_0x474d9d[_0x4dc5('0x46')],null))[_0x4dc5('0x21')](respondWithResult(_0x595d46,null))[_0x4dc5('0x40')](handleError(_0x595d46,null));};exports[_0x4dc5('0x22')]=function(_0x58bd82,_0x5b132c){return db[_0x4dc5('0x3c')]['find']({'where':{'id':_0x58bd82['params']['id']}})[_0x4dc5('0x21')](handleEntityNotFound(_0x5b132c,null))[_0x4dc5('0x21')](removeEntity(_0x5b132c,null))[_0x4dc5('0x40')](handleError(_0x5b132c,null));};exports[_0x4dc5('0x50')]=function(_0x52b760,_0x4b11ff,_0x3901f8){if(_0x52b760['body']['id']){delete _0x52b760[_0x4dc5('0x46')]['id'];}return db[_0x4dc5('0x3c')][_0x4dc5('0x4a')]({'where':{'id':_0x52b760[_0x4dc5('0x42')]['id']}})[_0x4dc5('0x21')](handleEntityNotFound(_0x4b11ff,null))[_0x4dc5('0x21')](function(_0x5053f8){if(_0x5053f8){_0x52b760[_0x4dc5('0x46')][_0x4dc5('0x51')]=_0x5053f8['id'];return db[_0x4dc5('0x3c')]['create'](_0x52b760[_0x4dc5('0x46')]);}})['then'](respondWithResult(_0x4b11ff,null))[_0x4dc5('0x40')](handleError(_0x4b11ff,null));};exports['getIntervals']=function(_0x58ec08,_0x1e1a8e,_0x384a0c){var _0x22c015={};var _0x23f436={};var _0x463d8f;var _0x121658;return db['Interval'][_0x4dc5('0x52')]({'where':{'id':_0x58ec08[_0x4dc5('0x42')]['id']}})['then'](handleEntityNotFound(_0x1e1a8e,null))[_0x4dc5('0x21')](function(_0x5039a0){if(_0x5039a0){_0x463d8f=_0x5039a0;_0x23f436[_0x4dc5('0x30')]=_[_0x4dc5('0x43')](db[_0x4dc5('0x3c')]['rawAttributes']);_0x23f436[_0x4dc5('0x2d')]=_[_0x4dc5('0x43')](_0x58ec08[_0x4dc5('0x2d')]);_0x23f436[_0x4dc5('0x2e')]=_[_0x4dc5('0x2f')](_0x23f436[_0x4dc5('0x30')],_0x23f436[_0x4dc5('0x2d')]);_0x22c015[_0x4dc5('0x31')]=_[_0x4dc5('0x2f')](_0x23f436[_0x4dc5('0x30')],qs[_0x4dc5('0x32')](_0x58ec08[_0x4dc5('0x2d')][_0x4dc5('0x32')]));_0x22c015[_0x4dc5('0x31')]=_0x22c015[_0x4dc5('0x31')][_0x4dc5('0x33')]?_0x22c015[_0x4dc5('0x31')]:_0x23f436['model'];_0x22c015['order']=qs[_0x4dc5('0x53')](_0x58ec08['query'][_0x4dc5('0x53')]);_0x22c015['where']=qs[_0x4dc5('0x2e')](_[_0x4dc5('0x37')](_0x58ec08['query'],_0x23f436[_0x4dc5('0x2e')]));if(_0x58ec08[_0x4dc5('0x2d')]['filter']){_0x22c015[_0x4dc5('0x36')]=_[_0x4dc5('0x3b')](_0x22c015[_0x4dc5('0x36')],{'$or':_[_0x4dc5('0x29')](_0x22c015[_0x4dc5('0x31')],function(_0xd4c39b){var _0x435ece={};_0x435ece[_0xd4c39b]={'$like':'%'+_0x58ec08[_0x4dc5('0x2d')][_0x4dc5('0x3a')]+'%'};return _0x435ece;})});}_0x22c015=_[_0x4dc5('0x3b')]({},_0x22c015,_0x58ec08['options']);return _0x463d8f[_0x4dc5('0x54')](_0x22c015);}})[_0x4dc5('0x21')](function(_0x58dfde){if(_0x58dfde){_0x121658=_0x58dfde[_0x4dc5('0x33')];if(!_0x58ec08[_0x4dc5('0x2d')][_0x4dc5('0x34')]('nolimit')){_0x22c015['limit']=qs[_0x4dc5('0x19')](_0x58ec08[_0x4dc5('0x2d')][_0x4dc5('0x19')]);_0x22c015[_0x4dc5('0x1b')]=qs[_0x4dc5('0x1b')](_0x58ec08[_0x4dc5('0x2d')][_0x4dc5('0x1b')]);}return _0x463d8f[_0x4dc5('0x54')](_0x22c015);}})[_0x4dc5('0x21')](function(_0x47d71a){if(_0x47d71a){return _0x47d71a?{'count':_0x121658,'rows':_0x47d71a}:null;}})['then'](respondWithResult(_0x1e1a8e,null))[_0x4dc5('0x40')](handleError(_0x1e1a8e,null));};exports[_0x4dc5('0x55')]=function(_0x8472bd,_0x555c0e,_0x4d00f3){return db['Interval'][_0x4dc5('0x52')]({'where':{'id':_0x8472bd[_0x4dc5('0x42')]['id']}})[_0x4dc5('0x21')](handleEntityNotFound(_0x555c0e,null))['then'](function(_0x32d4c8){if(_0x32d4c8){return db['sequelize'][_0x4dc5('0x56')](function(_0x451679){return db[_0x4dc5('0x3c')][_0x4dc5('0x22')]({'where':{'IntervalId':_0x8472bd[_0x4dc5('0x42')]['id']},'transaction':_0x451679})[_0x4dc5('0x21')](function(_0x3c7361){var _0x28327e=_[_0x4dc5('0x29')](_0x8472bd[_0x4dc5('0x46')],function(_0x2493dd){delete _0x2493dd['id'];_0x2493dd[_0x4dc5('0x51')]=_0x8472bd[_0x4dc5('0x42')]['id'];return _0x2493dd;});return db[_0x4dc5('0x3c')][_0x4dc5('0x57')](_0x28327e,{'transaction':_0x451679});});})[_0x4dc5('0x21')](function(){return db[_0x4dc5('0x3c')][_0x4dc5('0x58')]({'where':{'IntervalId':_0x8472bd[_0x4dc5('0x42')]['id']}});});}})[_0x4dc5('0x21')](respondWithResult(_0x555c0e,null))[_0x4dc5('0x40')](handleError(_0x555c0e,null));};