299f23638ae6fb4bb860c844ee4fffc398bf9b56
[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 _0x95b6=['Pauses','UserProfileResource','stack','name','send','index','map','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','fields','attributes','length','order','sort','where','pick','merge','VIRTUAL','options','Pause','include','findAll','rows','show','params','includeAll','find','catch','create','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','userProfileId','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','eml-format','rimraf','zip-dir','fast-json-patch','moment','util','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','end','json','offset','undefined','limit','count','status','set','Content-Range','apply','reject','save','then','destroy','get'];(function(_0x580576,_0x2f107d){var _0x3f55a0=function(_0x2e180b){while(--_0x2e180b){_0x580576['push'](_0x580576['shift']());}};_0x3f55a0(++_0x2f107d);}(_0x95b6,0xd2));var _0x695b=function(_0x1642ba,_0x44b1ba){_0x1642ba=_0x1642ba-0x0;var _0x4d39a2=_0x95b6[_0x1642ba];return _0x4d39a2;};'use strict';var emlformat=require(_0x695b('0x0'));var rimraf=require(_0x695b('0x1'));var zipdir=require(_0x695b('0x2'));var jsonpatch=require(_0x695b('0x3'));var rp=require('request-promise');var moment=require(_0x695b('0x4'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x695b('0x5'));var path=require('path');var sox=require('sox');var csv=require(_0x695b('0x6'));var ejs=require(_0x695b('0x7'));var fs=require('fs');var fs_extra=require(_0x695b('0x8'));var _=require('lodash');var squel=require(_0x695b('0x9'));var crypto=require(_0x695b('0xa'));var jsforce=require(_0x695b('0xb'));var deskjs=require(_0x695b('0xc'));var toCsv=require(_0x695b('0x6'));var querystring=require('querystring');var Papa=require(_0x695b('0xd'));var Redis=require(_0x695b('0xe'));var authService=require('../../components/auth/service');var qs=require(_0x695b('0xf'));var as=require(_0x695b('0x10'));var hardwareService=require(_0x695b('0x11'));var logger=require(_0x695b('0x12'))(_0x695b('0x13'));var utils=require(_0x695b('0x14'));var config=require(_0x695b('0x15'));var licenseUtil=require(_0x695b('0x16'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x36d628,_0x21bf45){_0x21bf45=_0x21bf45||0xcc;return function(_0xcbcc48){if(_0xcbcc48){return _0x36d628[_0x695b('0x17')](_0x21bf45);}return _0x36d628['status'](_0x21bf45)[_0x695b('0x18')]();};}function respondWithResult(_0xbced9d,_0x3142ee){_0x3142ee=_0x3142ee||0xc8;return function(_0x513c06){if(_0x513c06){return _0xbced9d['status'](_0x3142ee)[_0x695b('0x19')](_0x513c06);}};}function respondWithFilteredResult(_0x2391fa,_0x8c3ff5){return function(_0x310663){if(_0x310663){var _0xf774d2=typeof _0x8c3ff5[_0x695b('0x1a')]===_0x695b('0x1b')&&typeof _0x8c3ff5[_0x695b('0x1c')]===_0x695b('0x1b');var _0x20dd0f=_0x310663[_0x695b('0x1d')];var _0x1ea1e5=_0xf774d2?0x0:_0x8c3ff5[_0x695b('0x1a')];var _0x593867=_0xf774d2?_0x310663[_0x695b('0x1d')]:_0x8c3ff5[_0x695b('0x1a')]+_0x8c3ff5['limit'];var _0x40492e;if(_0x593867>=_0x20dd0f){_0x593867=_0x20dd0f;_0x40492e=0xc8;}else{_0x40492e=0xce;}_0x2391fa[_0x695b('0x1e')](_0x40492e);return _0x2391fa[_0x695b('0x1f')](_0x695b('0x20'),_0x1ea1e5+'-'+_0x593867+'/'+_0x20dd0f)[_0x695b('0x19')](_0x310663);}return null;};}function patchUpdates(_0x2cac36){return function(_0x34ee48){try{jsonpatch[_0x695b('0x21')](_0x34ee48,_0x2cac36,!![]);}catch(_0x5dc3ec){return BPromise[_0x695b('0x22')](_0x5dc3ec);}return _0x34ee48[_0x695b('0x23')]();};}function saveUpdates(_0x591d65,_0x21cfb8){return function(_0x5554be){if(_0x5554be){return _0x5554be['update'](_0x591d65)[_0x695b('0x24')](function(_0x4af77e){return _0x4af77e;});}return null;};}function removeEntity(_0x21f41e,_0x2f6632){return function(_0x5e408f){if(_0x5e408f){return _0x5e408f[_0x695b('0x25')]()['then'](function(){var _0xcee938=_0x5e408f[_0x695b('0x26')]({'plain':!![]});var _0x5f0a2c=_0x695b('0x27');return db[_0x695b('0x28')]['destroy']({'where':{'type':_0x5f0a2c,'resourceId':_0xcee938['id']}})[_0x695b('0x24')](function(){return _0x5e408f;});})[_0x695b('0x24')](function(){_0x21f41e['status'](0xcc)[_0x695b('0x18')]();});}};}function handleEntityNotFound(_0x5bf3bd,_0x42b38e){return function(_0x2cb410){if(!_0x2cb410){_0x5bf3bd[_0x695b('0x17')](0x194);}return _0x2cb410;};}function handleError(_0x4f59ee,_0x628766){_0x628766=_0x628766||0x1f4;return function(_0x1e6a8e){logger['error'](_0x1e6a8e[_0x695b('0x29')]);if(_0x1e6a8e[_0x695b('0x2a')]){delete _0x1e6a8e[_0x695b('0x2a')];}_0x4f59ee[_0x695b('0x1e')](_0x628766)[_0x695b('0x2b')](_0x1e6a8e);};}exports[_0x695b('0x2c')]=function(_0x5350d6,_0x358c91){var _0x237620={},_0xc853a6={},_0x18f9e2={'count':0x0,'rows':[]};var _0x639649=_[_0x695b('0x2d')](db['Pause'][_0x695b('0x2e')],function(_0x5b94df){return{'name':_0x5b94df[_0x695b('0x2f')],'type':_0x5b94df[_0x695b('0x30')][_0x695b('0x31')]};});_0xc853a6[_0x695b('0x32')]=_[_0x695b('0x2d')](_0x639649,'name');_0xc853a6[_0x695b('0x33')]=_[_0x695b('0x34')](_0x5350d6[_0x695b('0x33')]);_0xc853a6[_0x695b('0x35')]=_['intersection'](_0xc853a6['model'],_0xc853a6[_0x695b('0x33')]);_0x237620['attributes']=_[_0x695b('0x36')](_0xc853a6['model'],qs['fields'](_0x5350d6['query'][_0x695b('0x37')]));_0x237620[_0x695b('0x38')]=_0x237620[_0x695b('0x38')][_0x695b('0x39')]?_0x237620[_0x695b('0x38')]:_0xc853a6[_0x695b('0x32')];if(!_0x5350d6[_0x695b('0x33')]['hasOwnProperty']('nolimit')){_0x237620[_0x695b('0x1c')]=qs[_0x695b('0x1c')](_0x5350d6[_0x695b('0x33')][_0x695b('0x1c')]);_0x237620['offset']=qs[_0x695b('0x1a')](_0x5350d6[_0x695b('0x33')][_0x695b('0x1a')]);}_0x237620[_0x695b('0x3a')]=qs[_0x695b('0x3b')](_0x5350d6[_0x695b('0x33')][_0x695b('0x3b')]);_0x237620[_0x695b('0x3c')]=qs['filters'](_[_0x695b('0x3d')](_0x5350d6[_0x695b('0x33')],_0xc853a6[_0x695b('0x35')]),_0x639649);if(_0x5350d6[_0x695b('0x33')]['filter']){_0x237620[_0x695b('0x3c')]=_[_0x695b('0x3e')](_0x237620['where'],{'$or':_[_0x695b('0x2d')](_0x639649,function(_0x382452){if(_0x382452['type']!==_0x695b('0x3f')){var _0x2fe56b={};_0x2fe56b[_0x382452[_0x695b('0x2a')]]={'$like':'%'+_0x5350d6[_0x695b('0x33')]['filter']+'%'};return _0x2fe56b;}})});}_0x237620=_[_0x695b('0x3e')]({},_0x237620,_0x5350d6[_0x695b('0x40')]);var _0x4ec50a={'where':_0x237620['where']};return db[_0x695b('0x41')][_0x695b('0x1d')](_0x4ec50a)[_0x695b('0x24')](function(_0x44a463){_0x18f9e2[_0x695b('0x1d')]=_0x44a463;if(_0x5350d6['query']['includeAll']){_0x237620[_0x695b('0x42')]=[{'all':!![]}];}return db[_0x695b('0x41')][_0x695b('0x43')](_0x237620);})[_0x695b('0x24')](function(_0x3d7b4d){_0x18f9e2[_0x695b('0x44')]=_0x3d7b4d;return _0x18f9e2;})[_0x695b('0x24')](respondWithFilteredResult(_0x358c91,_0x237620))['catch'](handleError(_0x358c91,null));};exports[_0x695b('0x45')]=function(_0x33ce42,_0x182528){var _0x2836c0={'raw':!![],'where':{'id':_0x33ce42[_0x695b('0x46')]['id']}},_0x748bbc={};_0x748bbc['model']=_[_0x695b('0x34')](db['Pause'][_0x695b('0x2e')]);_0x748bbc['query']=_[_0x695b('0x34')](_0x33ce42[_0x695b('0x33')]);_0x748bbc[_0x695b('0x35')]=_[_0x695b('0x36')](_0x748bbc[_0x695b('0x32')],_0x748bbc[_0x695b('0x33')]);_0x2836c0[_0x695b('0x38')]=_[_0x695b('0x36')](_0x748bbc[_0x695b('0x32')],qs[_0x695b('0x37')](_0x33ce42[_0x695b('0x33')][_0x695b('0x37')]));_0x2836c0[_0x695b('0x38')]=_0x2836c0[_0x695b('0x38')]['length']?_0x2836c0[_0x695b('0x38')]:_0x748bbc[_0x695b('0x32')];if(_0x33ce42[_0x695b('0x33')][_0x695b('0x47')]){_0x2836c0['include']=[{'all':!![]}];}_0x2836c0=_['merge']({},_0x2836c0,_0x33ce42[_0x695b('0x40')]);return db[_0x695b('0x41')][_0x695b('0x48')](_0x2836c0)[_0x695b('0x24')](handleEntityNotFound(_0x182528,null))['then'](respondWithResult(_0x182528,null))[_0x695b('0x49')](handleError(_0x182528,null));};exports[_0x695b('0x4a')]=function(_0x3dba35,_0x3da231){return db[_0x695b('0x41')][_0x695b('0x4a')](_0x3dba35['body'],{})['then'](function(_0x225932){var _0xb685df=_0x3dba35['user'][_0x695b('0x26')]({'plain':!![]});if(!_0xb685df)throw new Error(_0x695b('0x4b'));if(_0xb685df[_0x695b('0x4c')]===_0x695b('0x4d')){var _0x1c18cd=_0x225932[_0x695b('0x26')]({'plain':!![]});var _0x13b776='Pauses';return db['UserProfileSection'][_0x695b('0x48')]({'where':{'name':_0x13b776,'userProfileId':_0xb685df[_0x695b('0x4e')]},'raw':!![]})[_0x695b('0x24')](function(_0xbb4875){if(_0xbb4875&&_0xbb4875[_0x695b('0x4f')]===0x0){return db[_0x695b('0x28')][_0x695b('0x4a')]({'name':_0x1c18cd[_0x695b('0x2a')],'resourceId':_0x1c18cd['id'],'type':_0xbb4875[_0x695b('0x2a')],'sectionId':_0xbb4875['id']},{})[_0x695b('0x24')](function(){return _0x225932;});}else{return _0x225932;}})[_0x695b('0x49')](function(_0x338411){logger[_0x695b('0x50')](_0x695b('0x51'),_0x338411);throw _0x338411;});}return _0x225932;})['then'](respondWithResult(_0x3da231,0xc9))[_0x695b('0x49')](handleError(_0x3da231,null));};exports['update']=function(_0x2e89b1,_0x5b7e61){if(_0x2e89b1['body']['id']){delete _0x2e89b1[_0x695b('0x52')]['id'];}return db[_0x695b('0x41')]['find']({'where':{'id':_0x2e89b1[_0x695b('0x46')]['id']}})['then'](handleEntityNotFound(_0x5b7e61,null))[_0x695b('0x24')](saveUpdates(_0x2e89b1[_0x695b('0x52')],null))['then'](respondWithResult(_0x5b7e61,null))[_0x695b('0x49')](handleError(_0x5b7e61,null));};exports[_0x695b('0x25')]=function(_0x27ab89,_0x1d8e66){return db['Pause'][_0x695b('0x48')]({'where':{'id':_0x27ab89['params']['id']}})['then'](handleEntityNotFound(_0x1d8e66,null))['then'](removeEntity(_0x1d8e66,null))[_0x695b('0x49')](handleError(_0x1d8e66,null));};