6f325fbb24d2ac99629463a1169930e1cd740a8a
[motion2.git] / server / api / pause / pause.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 _0x77e5=['user','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','body','html-pdf','eml-format','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','to-csv','ejs','lodash','crypto','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/environment','../../mysqldb','sendStatus','end','json','offset','status','set','Content-Range','reject','then','get','Pauses','destroy','error','name','index','fieldName','type','key','model','keys','query','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','limit','order','sort','pick','filter','where','merge','map','Pause','count','includeAll','findAll','rows','params','rawAttributes','find','catch','create'];(function(_0x3ff085,_0x27c92e){var _0x2b68c3=function(_0x37811e){while(--_0x37811e){_0x3ff085['push'](_0x3ff085['shift']());}};_0x2b68c3(++_0x27c92e);}(_0x77e5,0x9e));var _0x577e=function(_0x561bf0,_0x4ea029){_0x561bf0=_0x561bf0-0x0;var _0x42bbc6=_0x77e5[_0x561bf0];return _0x42bbc6;};'use strict';var pdf=require(_0x577e('0x0'));var emlformat=require(_0x577e('0x1'));var rimraf=require('rimraf');var zipdir=require(_0x577e('0x2'));var jsonpatch=require(_0x577e('0x3'));var rp=require(_0x577e('0x4'));var moment=require('moment');var BPromise=require(_0x577e('0x5'));var Mustache=require(_0x577e('0x6'));var util=require(_0x577e('0x7'));var path=require(_0x577e('0x8'));var sox=require('sox');var csv=require(_0x577e('0x9'));var ejs=require(_0x577e('0xa'));var fs=require('fs');var _=require(_0x577e('0xb'));var squel=require('squel');var crypto=require(_0x577e('0xc'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x577e('0x9'));var querystring=require('querystring');var Papa=require(_0x577e('0xd'));var Redis=require(_0x577e('0xe'));var authService=require(_0x577e('0xf'));var qs=require(_0x577e('0x10'));var as=require(_0x577e('0x11'));var hardwareService=require(_0x577e('0x12'));var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require(_0x577e('0x13'));var db=require(_0x577e('0x14'))['db'];function respondWithStatusCode(_0x4e91ab,_0x4429cd){_0x4429cd=_0x4429cd||0xcc;return function(_0x201dc1){if(_0x201dc1){return _0x4e91ab[_0x577e('0x15')](_0x4429cd);}return _0x4e91ab['status'](_0x4429cd)[_0x577e('0x16')]();};}function respondWithResult(_0x469649,_0x33cd0f){_0x33cd0f=_0x33cd0f||0xc8;return function(_0x233a22){if(_0x233a22){return _0x469649['status'](_0x33cd0f)[_0x577e('0x17')](_0x233a22);}};}function respondWithFilteredResult(_0x5eb396,_0x250f91){return function(_0x43a2ff){if(_0x43a2ff){var _0x389121=_0x43a2ff['count'],_0x38a188=_0x250f91['offset'],_0x358230=_0x250f91[_0x577e('0x18')]+_0x250f91['limit'],_0xb02775;if(_0x358230>=_0x389121){_0x358230=_0x389121;_0xb02775=0xc8;}else{_0xb02775=0xce;}_0x5eb396[_0x577e('0x19')](_0xb02775);return _0x5eb396[_0x577e('0x1a')](_0x577e('0x1b'),_0x38a188+'-'+_0x358230+'/'+_0x389121)[_0x577e('0x17')](_0x43a2ff);}return null;};}function patchUpdates(_0x26309e){return function(_0x40697f){try{jsonpatch['apply'](_0x40697f,_0x26309e,!![]);}catch(_0x35ea52){return BPromise[_0x577e('0x1c')](_0x35ea52);}return _0x40697f['save']();};}function saveUpdates(_0x53163d,_0x59c244){return function(_0x3b1361){if(_0x3b1361){return _0x3b1361['update'](_0x53163d)[_0x577e('0x1d')](function(_0x4336b1){return _0x4336b1;});}return null;};}function removeEntity(_0xd48f07,_0x426999){return function(_0x3ac9df){if(_0x3ac9df){return _0x3ac9df['destroy']()['then'](function(){var _0x47ba64=_0x3ac9df[_0x577e('0x1e')]({'plain':!![]});var _0x359952=_0x577e('0x1f');return db['UserProfileResource'][_0x577e('0x20')]({'where':{'type':_0x359952,'resourceId':_0x47ba64['id']}})['then'](function(){return _0x3ac9df;});})[_0x577e('0x1d')](function(){_0xd48f07[_0x577e('0x19')](0xcc)[_0x577e('0x16')]();});}};}function handleEntityNotFound(_0x19bd24,_0x31a13e){return function(_0x56e417){if(!_0x56e417){_0x19bd24[_0x577e('0x15')](0x194);}return _0x56e417;};}function handleError(_0x11a1a9,_0x15ec72){_0x15ec72=_0x15ec72||0x1f4;return function(_0x3640f1){logger[_0x577e('0x21')](_0x3640f1['stack']);if(_0x3640f1['name']){delete _0x3640f1[_0x577e('0x22')];}_0x11a1a9['status'](_0x15ec72)['send'](_0x3640f1);};}exports[_0x577e('0x23')]=function(_0x3c4d28,_0x42d8dc){var _0x538533={},_0x1f5b20={},_0x5e5da5={'count':0x0,'rows':[]};var _0xbd0e5b=_['map'](db['Pause']['rawAttributes'],function(_0x57386c){return{'name':_0x57386c[_0x577e('0x24')],'type':_0x57386c[_0x577e('0x25')][_0x577e('0x26')]};});_0x1f5b20[_0x577e('0x27')]=_['map'](_0xbd0e5b,_0x577e('0x22'));_0x1f5b20['query']=_[_0x577e('0x28')](_0x3c4d28[_0x577e('0x29')]);_0x1f5b20[_0x577e('0x2a')]=_[_0x577e('0x2b')](_0x1f5b20[_0x577e('0x27')],_0x1f5b20[_0x577e('0x29')]);_0x538533['attributes']=_['intersection'](_0x1f5b20[_0x577e('0x27')],qs['fields'](_0x3c4d28[_0x577e('0x29')][_0x577e('0x2c')]));_0x538533[_0x577e('0x2d')]=_0x538533[_0x577e('0x2d')][_0x577e('0x2e')]?_0x538533[_0x577e('0x2d')]:_0x1f5b20[_0x577e('0x27')];if(!_0x3c4d28[_0x577e('0x29')][_0x577e('0x2f')](_0x577e('0x30'))){_0x538533[_0x577e('0x31')]=qs['limit'](_0x3c4d28[_0x577e('0x29')][_0x577e('0x31')]);_0x538533[_0x577e('0x18')]=qs['offset'](_0x3c4d28['query']['offset']);}_0x538533[_0x577e('0x32')]=qs[_0x577e('0x33')](_0x3c4d28[_0x577e('0x29')]['sort']);_0x538533['where']=qs[_0x577e('0x2a')](_[_0x577e('0x34')](_0x3c4d28['query'],_0x1f5b20[_0x577e('0x2a')]),_0xbd0e5b);if(_0x3c4d28[_0x577e('0x29')][_0x577e('0x35')]){_0x538533[_0x577e('0x36')]=_[_0x577e('0x37')](_0x538533[_0x577e('0x36')],{'$or':_[_0x577e('0x38')](_0xbd0e5b,function(_0x1f9bdf){if(_0x1f9bdf[_0x577e('0x25')]!=='VIRTUAL'){var _0x3e33b4={};_0x3e33b4[_0x1f9bdf[_0x577e('0x22')]]={'$like':'%'+_0x3c4d28['query'][_0x577e('0x35')]+'%'};return _0x3e33b4;}})});}_0x538533=_['merge']({},_0x538533,_0x3c4d28['options']);var _0x33797a={'where':_0x538533['where']};return db[_0x577e('0x39')][_0x577e('0x3a')](_0x33797a)[_0x577e('0x1d')](function(_0x5e0640){_0x5e5da5[_0x577e('0x3a')]=_0x5e0640;if(_0x3c4d28[_0x577e('0x29')][_0x577e('0x3b')]){_0x538533['include']=[{'all':!![]}];}return db[_0x577e('0x39')][_0x577e('0x3c')](_0x538533);})[_0x577e('0x1d')](function(_0x588492){_0x5e5da5[_0x577e('0x3d')]=_0x588492;return _0x5e5da5;})[_0x577e('0x1d')](respondWithFilteredResult(_0x42d8dc,_0x538533))['catch'](handleError(_0x42d8dc,null));};exports['show']=function(_0x3d8001,_0x3dbb3b){var _0x46cb5b={'raw':!![],'where':{'id':_0x3d8001[_0x577e('0x3e')]['id']}},_0x34f89a={};_0x34f89a[_0x577e('0x27')]=_[_0x577e('0x28')](db['Pause'][_0x577e('0x3f')]);_0x34f89a[_0x577e('0x29')]=_[_0x577e('0x28')](_0x3d8001[_0x577e('0x29')]);_0x34f89a[_0x577e('0x2a')]=_['intersection'](_0x34f89a[_0x577e('0x27')],_0x34f89a['query']);_0x46cb5b[_0x577e('0x2d')]=_[_0x577e('0x2b')](_0x34f89a[_0x577e('0x27')],qs[_0x577e('0x2c')](_0x3d8001[_0x577e('0x29')][_0x577e('0x2c')]));_0x46cb5b['attributes']=_0x46cb5b[_0x577e('0x2d')][_0x577e('0x2e')]?_0x46cb5b[_0x577e('0x2d')]:_0x34f89a[_0x577e('0x27')];if(_0x3d8001[_0x577e('0x29')][_0x577e('0x3b')]){_0x46cb5b['include']=[{'all':!![]}];}_0x46cb5b=_['merge']({},_0x46cb5b,_0x3d8001['options']);return db[_0x577e('0x39')][_0x577e('0x40')](_0x46cb5b)[_0x577e('0x1d')](handleEntityNotFound(_0x3dbb3b,null))[_0x577e('0x1d')](respondWithResult(_0x3dbb3b,null))[_0x577e('0x41')](handleError(_0x3dbb3b,null));};exports[_0x577e('0x42')]=function(_0x3f1167,_0xdb5af8){return db[_0x577e('0x39')][_0x577e('0x42')](_0x3f1167['body'],{})[_0x577e('0x1d')](function(_0x28ea2b){var _0x2c8637=_0x3f1167[_0x577e('0x43')]['get']({'plain':!![]});if(!_0x2c8637)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x2c8637['role']===_0x577e('0x43')){var _0x502625=_0x28ea2b[_0x577e('0x1e')]({'plain':!![]});var _0x239d5b=_0x577e('0x1f');return db[_0x577e('0x44')]['find']({'where':{'name':_0x239d5b,'userProfileId':_0x2c8637[_0x577e('0x45')]},'raw':!![]})[_0x577e('0x1d')](function(_0x5f28e7){if(_0x5f28e7&&_0x5f28e7[_0x577e('0x46')]===0x0){return db[_0x577e('0x47')][_0x577e('0x42')]({'name':_0x502625[_0x577e('0x22')],'resourceId':_0x502625['id'],'type':_0x5f28e7[_0x577e('0x22')],'sectionId':_0x5f28e7['id']},{})[_0x577e('0x1d')](function(){return _0x28ea2b;});}else{return _0x28ea2b;}})[_0x577e('0x41')](function(_0x453668){logger[_0x577e('0x21')](_0x577e('0x48'),_0x453668);throw _0x453668;});}return _0x28ea2b;})[_0x577e('0x1d')](respondWithResult(_0xdb5af8,0xc9))[_0x577e('0x41')](handleError(_0xdb5af8,null));};exports[_0x577e('0x49')]=function(_0x1e4ca9,_0x1e0d24){if(_0x1e4ca9['body']['id']){delete _0x1e4ca9[_0x577e('0x4a')]['id'];}return db[_0x577e('0x39')]['find']({'where':{'id':_0x1e4ca9['params']['id']}})['then'](handleEntityNotFound(_0x1e0d24,null))['then'](saveUpdates(_0x1e4ca9[_0x577e('0x4a')],null))[_0x577e('0x1d')](respondWithResult(_0x1e0d24,null))[_0x577e('0x41')](handleError(_0x1e0d24,null));};exports[_0x577e('0x20')]=function(_0x459abc,_0x26b3e9){return db['Pause']['find']({'where':{'id':_0x459abc['params']['id']}})[_0x577e('0x1d')](handleEntityNotFound(_0x26b3e9,null))[_0x577e('0x1d')](removeEntity(_0x26b3e9,null))[_0x577e('0x41')](handleError(_0x26b3e9,null));};