8850972818f956ff96b8f71fb1d187973f49de5e
[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 _0x7326=['rawAttributes','fieldName','type','key','query','keys','filters','intersection','model','attributes','length','hasOwnProperty','nolimit','sort','where','pick','filter','merge','options','count','includeAll','findAll','rows','catch','show','params','fields','include','find','create','body','user','get','role','autoAssociation','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','squel','crypto','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','limit','set','Content-Range','apply','reject','save','update','then','destroy','Pauses','UserProfileResource','error','stack','name','send','index','map','Pause'];(function(_0x476478,_0x14858e){var _0x434190=function(_0x12ca73){while(--_0x12ca73){_0x476478['push'](_0x476478['shift']());}};_0x434190(++_0x14858e);}(_0x7326,0xc7));var _0x6732=function(_0x550d12,_0x5384bd){_0x550d12=_0x550d12-0x0;var _0x12103d=_0x7326[_0x550d12];return _0x12103d;};'use strict';var pdf=require('html-pdf');var emlformat=require('eml-format');var rimraf=require(_0x6732('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x6732('0x1'));var rp=require(_0x6732('0x2'));var moment=require(_0x6732('0x3'));var BPromise=require(_0x6732('0x4'));var Mustache=require(_0x6732('0x5'));var util=require(_0x6732('0x6'));var path=require(_0x6732('0x7'));var sox=require(_0x6732('0x8'));var csv=require(_0x6732('0x9'));var ejs=require(_0x6732('0xa'));var fs=require('fs');var _=require('lodash');var squel=require(_0x6732('0xb'));var crypto=require(_0x6732('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x6732('0xd'));var toCsv=require(_0x6732('0x9'));var querystring=require('querystring');var Papa=require(_0x6732('0xe'));var Redis=require(_0x6732('0xf'));var authService=require(_0x6732('0x10'));var qs=require(_0x6732('0x11'));var as=require(_0x6732('0x12'));var hardwareService=require(_0x6732('0x13'));var logger=require(_0x6732('0x14'))('api');var utils=require(_0x6732('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0x6732('0x16'));var db=require(_0x6732('0x17'))['db'];function respondWithStatusCode(_0xd15927,_0x53a6f8){_0x53a6f8=_0x53a6f8||0xcc;return function(_0x112ed4){if(_0x112ed4){return _0xd15927[_0x6732('0x18')](_0x53a6f8);}return _0xd15927[_0x6732('0x19')](_0x53a6f8)[_0x6732('0x1a')]();};}function respondWithResult(_0x174ce0,_0x245cbf){_0x245cbf=_0x245cbf||0xc8;return function(_0x4694e6){if(_0x4694e6){return _0x174ce0[_0x6732('0x19')](_0x245cbf)[_0x6732('0x1b')](_0x4694e6);}};}function respondWithFilteredResult(_0x13d777,_0x58c5af){return function(_0x359b10){if(_0x359b10){var _0x49269f=_0x359b10['count'],_0x3a3f58=_0x58c5af[_0x6732('0x1c')],_0x155eca=_0x58c5af[_0x6732('0x1c')]+_0x58c5af[_0x6732('0x1d')],_0x477b33;if(_0x155eca>=_0x49269f){_0x155eca=_0x49269f;_0x477b33=0xc8;}else{_0x477b33=0xce;}_0x13d777['status'](_0x477b33);return _0x13d777[_0x6732('0x1e')](_0x6732('0x1f'),_0x3a3f58+'-'+_0x155eca+'/'+_0x49269f)['json'](_0x359b10);}return null;};}function patchUpdates(_0x45a246){return function(_0x35506b){try{jsonpatch[_0x6732('0x20')](_0x35506b,_0x45a246,!![]);}catch(_0x10921f){return BPromise[_0x6732('0x21')](_0x10921f);}return _0x35506b[_0x6732('0x22')]();};}function saveUpdates(_0x2870dc,_0x320d6a){return function(_0x24a1a7){if(_0x24a1a7){return _0x24a1a7[_0x6732('0x23')](_0x2870dc)[_0x6732('0x24')](function(_0x1d5dd7){return _0x1d5dd7;});}return null;};}function removeEntity(_0x31f908,_0x5f3d65){return function(_0x592a99){if(_0x592a99){return _0x592a99[_0x6732('0x25')]()[_0x6732('0x24')](function(){var _0x5b8c68=_0x592a99['get']({'plain':!![]});var _0x564e35=_0x6732('0x26');return db[_0x6732('0x27')][_0x6732('0x25')]({'where':{'type':_0x564e35,'resourceId':_0x5b8c68['id']}})[_0x6732('0x24')](function(){return _0x592a99;});})['then'](function(){_0x31f908[_0x6732('0x19')](0xcc)[_0x6732('0x1a')]();});}};}function handleEntityNotFound(_0x48489a,_0x2d3e1f){return function(_0x442101){if(!_0x442101){_0x48489a[_0x6732('0x18')](0x194);}return _0x442101;};}function handleError(_0x22fabd,_0x4cb34f){_0x4cb34f=_0x4cb34f||0x1f4;return function(_0x5f0edf){logger[_0x6732('0x28')](_0x5f0edf[_0x6732('0x29')]);if(_0x5f0edf[_0x6732('0x2a')]){delete _0x5f0edf['name'];}_0x22fabd[_0x6732('0x19')](_0x4cb34f)[_0x6732('0x2b')](_0x5f0edf);};}exports[_0x6732('0x2c')]=function(_0x69c40e,_0x39aeee){var _0x451b08={},_0x6da91e={},_0xb14f9e={'count':0x0,'rows':[]};var _0x1e5a5b=_[_0x6732('0x2d')](db[_0x6732('0x2e')][_0x6732('0x2f')],function(_0x116553){return{'name':_0x116553[_0x6732('0x30')],'type':_0x116553[_0x6732('0x31')][_0x6732('0x32')]};});_0x6da91e['model']=_['map'](_0x1e5a5b,_0x6732('0x2a'));_0x6da91e[_0x6732('0x33')]=_[_0x6732('0x34')](_0x69c40e[_0x6732('0x33')]);_0x6da91e[_0x6732('0x35')]=_[_0x6732('0x36')](_0x6da91e['model'],_0x6da91e[_0x6732('0x33')]);_0x451b08['attributes']=_[_0x6732('0x36')](_0x6da91e[_0x6732('0x37')],qs['fields'](_0x69c40e[_0x6732('0x33')]['fields']));_0x451b08[_0x6732('0x38')]=_0x451b08['attributes'][_0x6732('0x39')]?_0x451b08['attributes']:_0x6da91e[_0x6732('0x37')];if(!_0x69c40e['query'][_0x6732('0x3a')](_0x6732('0x3b'))){_0x451b08['limit']=qs[_0x6732('0x1d')](_0x69c40e[_0x6732('0x33')][_0x6732('0x1d')]);_0x451b08[_0x6732('0x1c')]=qs[_0x6732('0x1c')](_0x69c40e[_0x6732('0x33')][_0x6732('0x1c')]);}_0x451b08['order']=qs[_0x6732('0x3c')](_0x69c40e[_0x6732('0x33')][_0x6732('0x3c')]);_0x451b08[_0x6732('0x3d')]=qs[_0x6732('0x35')](_[_0x6732('0x3e')](_0x69c40e[_0x6732('0x33')],_0x6da91e[_0x6732('0x35')]),_0x1e5a5b);if(_0x69c40e['query'][_0x6732('0x3f')]){_0x451b08[_0x6732('0x3d')]=_[_0x6732('0x40')](_0x451b08[_0x6732('0x3d')],{'$or':_[_0x6732('0x2d')](_0x1e5a5b,function(_0x166aeb){if(_0x166aeb[_0x6732('0x31')]!=='VIRTUAL'){var _0x5c6b86={};_0x5c6b86[_0x166aeb[_0x6732('0x2a')]]={'$like':'%'+_0x69c40e[_0x6732('0x33')][_0x6732('0x3f')]+'%'};return _0x5c6b86;}})});}_0x451b08=_['merge']({},_0x451b08,_0x69c40e[_0x6732('0x41')]);var _0x33f083={'where':_0x451b08[_0x6732('0x3d')]};return db[_0x6732('0x2e')]['count'](_0x33f083)['then'](function(_0x451cc4){_0xb14f9e[_0x6732('0x42')]=_0x451cc4;if(_0x69c40e[_0x6732('0x33')][_0x6732('0x43')]){_0x451b08['include']=[{'all':!![]}];}return db[_0x6732('0x2e')][_0x6732('0x44')](_0x451b08);})[_0x6732('0x24')](function(_0x23391d){_0xb14f9e[_0x6732('0x45')]=_0x23391d;return _0xb14f9e;})['then'](respondWithFilteredResult(_0x39aeee,_0x451b08))[_0x6732('0x46')](handleError(_0x39aeee,null));};exports[_0x6732('0x47')]=function(_0x1a301c,_0x27c432){var _0x525a8d={'raw':!![],'where':{'id':_0x1a301c[_0x6732('0x48')]['id']}},_0x2720a1={};_0x2720a1[_0x6732('0x37')]=_['keys'](db['Pause'][_0x6732('0x2f')]);_0x2720a1['query']=_[_0x6732('0x34')](_0x1a301c[_0x6732('0x33')]);_0x2720a1[_0x6732('0x35')]=_[_0x6732('0x36')](_0x2720a1[_0x6732('0x37')],_0x2720a1[_0x6732('0x33')]);_0x525a8d['attributes']=_[_0x6732('0x36')](_0x2720a1[_0x6732('0x37')],qs[_0x6732('0x49')](_0x1a301c[_0x6732('0x33')]['fields']));_0x525a8d[_0x6732('0x38')]=_0x525a8d[_0x6732('0x38')][_0x6732('0x39')]?_0x525a8d[_0x6732('0x38')]:_0x2720a1[_0x6732('0x37')];if(_0x1a301c['query'][_0x6732('0x43')]){_0x525a8d[_0x6732('0x4a')]=[{'all':!![]}];}_0x525a8d=_[_0x6732('0x40')]({},_0x525a8d,_0x1a301c[_0x6732('0x41')]);return db['Pause'][_0x6732('0x4b')](_0x525a8d)[_0x6732('0x24')](handleEntityNotFound(_0x27c432,null))[_0x6732('0x24')](respondWithResult(_0x27c432,null))[_0x6732('0x46')](handleError(_0x27c432,null));};exports['create']=function(_0x102018,_0x428e0e){return db[_0x6732('0x2e')][_0x6732('0x4c')](_0x102018[_0x6732('0x4d')],{})['then'](function(_0x2aaa04){var _0x35ee98=_0x102018[_0x6732('0x4e')][_0x6732('0x4f')]({'plain':!![]});if(!_0x35ee98)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x35ee98[_0x6732('0x50')]==='user'){var _0x3d3825=_0x2aaa04[_0x6732('0x4f')]({'plain':!![]});var _0x583890=_0x6732('0x26');return db['UserProfileSection'][_0x6732('0x4b')]({'where':{'name':_0x583890,'userProfileId':_0x35ee98['userProfileId']},'raw':!![]})[_0x6732('0x24')](function(_0x4ba03c){if(_0x4ba03c&&_0x4ba03c[_0x6732('0x51')]===0x0){return db['UserProfileResource'][_0x6732('0x4c')]({'name':_0x3d3825[_0x6732('0x2a')],'resourceId':_0x3d3825['id'],'type':_0x4ba03c[_0x6732('0x2a')],'sectionId':_0x4ba03c['id']},{})['then'](function(){return _0x2aaa04;});}else{return _0x2aaa04;}})['catch'](function(_0x333432){logger[_0x6732('0x28')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x333432);throw _0x333432;});}return _0x2aaa04;})[_0x6732('0x24')](respondWithResult(_0x428e0e,0xc9))[_0x6732('0x46')](handleError(_0x428e0e,null));};exports[_0x6732('0x23')]=function(_0x209cd3,_0xcd1ac){if(_0x209cd3[_0x6732('0x4d')]['id']){delete _0x209cd3[_0x6732('0x4d')]['id'];}return db[_0x6732('0x2e')][_0x6732('0x4b')]({'where':{'id':_0x209cd3[_0x6732('0x48')]['id']}})[_0x6732('0x24')](handleEntityNotFound(_0xcd1ac,null))[_0x6732('0x24')](saveUpdates(_0x209cd3[_0x6732('0x4d')],null))[_0x6732('0x24')](respondWithResult(_0xcd1ac,null))[_0x6732('0x46')](handleError(_0xcd1ac,null));};exports[_0x6732('0x25')]=function(_0x560632,_0x373e42){return db[_0x6732('0x2e')]['find']({'where':{'id':_0x560632[_0x6732('0x48')]['id']}})[_0x6732('0x24')](handleEntityNotFound(_0x373e42,null))[_0x6732('0x24')](removeEntity(_0x373e42,null))['catch'](handleError(_0x373e42,null));};