4d60e7e1ed8da79259dc9377205913fda6b1341c
[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 _0x48fc=['merge','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','get','Pauses','UserProfileSection','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','undefined','count','set','Content-Range','apply','reject','save','update','then','destroy','UserProfileResource','end','stack','send','map','rawAttributes','fieldName','type','model','name','query','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','limit','sort','where','pick','VIRTUAL','options','Pause','includeAll','catch','show','params','include'];(function(_0x2a6d8c,_0x19c800){var _0x31a401=function(_0x2bd376){while(--_0x2bd376){_0x2a6d8c['push'](_0x2a6d8c['shift']());}};_0x31a401(++_0x19c800);}(_0x48fc,0xae));var _0xc48f=function(_0x34b198,_0x55653f){_0x34b198=_0x34b198-0x0;var _0x284753=_0x48fc[_0x34b198];return _0x284753;};'use strict';var emlformat=require(_0xc48f('0x0'));var rimraf=require(_0xc48f('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xc48f('0x2'));var rp=require(_0xc48f('0x3'));var moment=require(_0xc48f('0x4'));var BPromise=require(_0xc48f('0x5'));var Mustache=require(_0xc48f('0x6'));var util=require('util');var path=require(_0xc48f('0x7'));var sox=require(_0xc48f('0x8'));var csv=require(_0xc48f('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xc48f('0xa'));var squel=require('squel');var crypto=require(_0xc48f('0xb'));var jsforce=require(_0xc48f('0xc'));var deskjs=require(_0xc48f('0xd'));var toCsv=require('to-csv');var querystring=require(_0xc48f('0xe'));var Papa=require(_0xc48f('0xf'));var Redis=require(_0xc48f('0x10'));var authService=require('../../components/auth/service');var qs=require(_0xc48f('0x11'));var as=require(_0xc48f('0x12'));var hardwareService=require(_0xc48f('0x13'));var logger=require(_0xc48f('0x14'))('api');var utils=require(_0xc48f('0x15'));var config=require(_0xc48f('0x16'));var licenseUtil=require(_0xc48f('0x17'));var db=require(_0xc48f('0x18'))['db'];function respondWithStatusCode(_0x239e2b,_0x36b147){_0x36b147=_0x36b147||0xcc;return function(_0x5e23c0){if(_0x5e23c0){return _0x239e2b[_0xc48f('0x19')](_0x36b147);}return _0x239e2b[_0xc48f('0x1a')](_0x36b147)['end']();};}function respondWithResult(_0x5b308e,_0x41cd40){_0x41cd40=_0x41cd40||0xc8;return function(_0x4526fa){if(_0x4526fa){return _0x5b308e[_0xc48f('0x1a')](_0x41cd40)[_0xc48f('0x1b')](_0x4526fa);}};}function respondWithFilteredResult(_0x51d939,_0x2aee6a){return function(_0x3765ea){if(_0x3765ea){var _0x23299d=typeof _0x2aee6a[_0xc48f('0x1c')]==='undefined'&&typeof _0x2aee6a['limit']===_0xc48f('0x1d');var _0x3e7cbf=_0x3765ea[_0xc48f('0x1e')];var _0x497d84=_0x23299d?0x0:_0x2aee6a['offset'];var _0x154f94=_0x23299d?_0x3765ea[_0xc48f('0x1e')]:_0x2aee6a[_0xc48f('0x1c')]+_0x2aee6a['limit'];var _0xfa2815;if(_0x154f94>=_0x3e7cbf){_0x154f94=_0x3e7cbf;_0xfa2815=0xc8;}else{_0xfa2815=0xce;}_0x51d939['status'](_0xfa2815);return _0x51d939[_0xc48f('0x1f')](_0xc48f('0x20'),_0x497d84+'-'+_0x154f94+'/'+_0x3e7cbf)[_0xc48f('0x1b')](_0x3765ea);}return null;};}function patchUpdates(_0x1982fb){return function(_0x558aa2){try{jsonpatch[_0xc48f('0x21')](_0x558aa2,_0x1982fb,!![]);}catch(_0x3630b7){return BPromise[_0xc48f('0x22')](_0x3630b7);}return _0x558aa2[_0xc48f('0x23')]();};}function saveUpdates(_0x376e61,_0x516d00){return function(_0x4a0a39){if(_0x4a0a39){return _0x4a0a39[_0xc48f('0x24')](_0x376e61)[_0xc48f('0x25')](function(_0xdef079){return _0xdef079;});}return null;};}function removeEntity(_0x3864f3,_0x29e40e){return function(_0x37b474){if(_0x37b474){return _0x37b474[_0xc48f('0x26')]()[_0xc48f('0x25')](function(){var _0x23f79f=_0x37b474['get']({'plain':!![]});var _0x53c0b4='Pauses';return db[_0xc48f('0x27')][_0xc48f('0x26')]({'where':{'type':_0x53c0b4,'resourceId':_0x23f79f['id']}})[_0xc48f('0x25')](function(){return _0x37b474;});})['then'](function(){_0x3864f3[_0xc48f('0x1a')](0xcc)[_0xc48f('0x28')]();});}};}function handleEntityNotFound(_0x32d65f,_0x1b8b85){return function(_0xf1a3fc){if(!_0xf1a3fc){_0x32d65f[_0xc48f('0x19')](0x194);}return _0xf1a3fc;};}function handleError(_0x49c8d7,_0x399d55){_0x399d55=_0x399d55||0x1f4;return function(_0x48668e){logger['error'](_0x48668e[_0xc48f('0x29')]);if(_0x48668e['name']){delete _0x48668e['name'];}_0x49c8d7[_0xc48f('0x1a')](_0x399d55)[_0xc48f('0x2a')](_0x48668e);};}exports['index']=function(_0x5dc743,_0x13634d){var _0x39bb39={},_0xaecbd9={},_0x47e020={'count':0x0,'rows':[]};var _0x552138=_[_0xc48f('0x2b')](db['Pause'][_0xc48f('0x2c')],function(_0x4925b0){return{'name':_0x4925b0[_0xc48f('0x2d')],'type':_0x4925b0[_0xc48f('0x2e')]['key']};});_0xaecbd9[_0xc48f('0x2f')]=_[_0xc48f('0x2b')](_0x552138,_0xc48f('0x30'));_0xaecbd9['query']=_['keys'](_0x5dc743[_0xc48f('0x31')]);_0xaecbd9[_0xc48f('0x32')]=_[_0xc48f('0x33')](_0xaecbd9[_0xc48f('0x2f')],_0xaecbd9[_0xc48f('0x31')]);_0x39bb39['attributes']=_[_0xc48f('0x33')](_0xaecbd9[_0xc48f('0x2f')],qs[_0xc48f('0x34')](_0x5dc743[_0xc48f('0x31')][_0xc48f('0x34')]));_0x39bb39[_0xc48f('0x35')]=_0x39bb39['attributes'][_0xc48f('0x36')]?_0x39bb39['attributes']:_0xaecbd9['model'];if(!_0x5dc743['query'][_0xc48f('0x37')](_0xc48f('0x38'))){_0x39bb39['limit']=qs[_0xc48f('0x39')](_0x5dc743[_0xc48f('0x31')][_0xc48f('0x39')]);_0x39bb39['offset']=qs[_0xc48f('0x1c')](_0x5dc743['query'][_0xc48f('0x1c')]);}_0x39bb39['order']=qs[_0xc48f('0x3a')](_0x5dc743[_0xc48f('0x31')][_0xc48f('0x3a')]);_0x39bb39[_0xc48f('0x3b')]=qs['filters'](_[_0xc48f('0x3c')](_0x5dc743['query'],_0xaecbd9['filters']),_0x552138);if(_0x5dc743[_0xc48f('0x31')]['filter']){_0x39bb39[_0xc48f('0x3b')]=_['merge'](_0x39bb39[_0xc48f('0x3b')],{'$or':_[_0xc48f('0x2b')](_0x552138,function(_0x61bf61){if(_0x61bf61['type']!==_0xc48f('0x3d')){var _0x14f087={};_0x14f087[_0x61bf61['name']]={'$like':'%'+_0x5dc743[_0xc48f('0x31')]['filter']+'%'};return _0x14f087;}})});}_0x39bb39=_['merge']({},_0x39bb39,_0x5dc743[_0xc48f('0x3e')]);var _0x579c03={'where':_0x39bb39[_0xc48f('0x3b')]};return db[_0xc48f('0x3f')][_0xc48f('0x1e')](_0x579c03)[_0xc48f('0x25')](function(_0x5b7516){_0x47e020[_0xc48f('0x1e')]=_0x5b7516;if(_0x5dc743[_0xc48f('0x31')][_0xc48f('0x40')]){_0x39bb39['include']=[{'all':!![]}];}return db[_0xc48f('0x3f')]['findAll'](_0x39bb39);})[_0xc48f('0x25')](function(_0x453a73){_0x47e020['rows']=_0x453a73;return _0x47e020;})['then'](respondWithFilteredResult(_0x13634d,_0x39bb39))[_0xc48f('0x41')](handleError(_0x13634d,null));};exports[_0xc48f('0x42')]=function(_0x55f48c,_0x53e37c){var _0x4e7890={'raw':!![],'where':{'id':_0x55f48c[_0xc48f('0x43')]['id']}},_0x46c4eb={};_0x46c4eb[_0xc48f('0x2f')]=_['keys'](db['Pause'][_0xc48f('0x2c')]);_0x46c4eb[_0xc48f('0x31')]=_['keys'](_0x55f48c[_0xc48f('0x31')]);_0x46c4eb['filters']=_[_0xc48f('0x33')](_0x46c4eb['model'],_0x46c4eb['query']);_0x4e7890['attributes']=_[_0xc48f('0x33')](_0x46c4eb[_0xc48f('0x2f')],qs[_0xc48f('0x34')](_0x55f48c['query']['fields']));_0x4e7890['attributes']=_0x4e7890[_0xc48f('0x35')]['length']?_0x4e7890[_0xc48f('0x35')]:_0x46c4eb['model'];if(_0x55f48c[_0xc48f('0x31')][_0xc48f('0x40')]){_0x4e7890[_0xc48f('0x44')]=[{'all':!![]}];}_0x4e7890=_[_0xc48f('0x45')]({},_0x4e7890,_0x55f48c[_0xc48f('0x3e')]);return db['Pause'][_0xc48f('0x46')](_0x4e7890)[_0xc48f('0x25')](handleEntityNotFound(_0x53e37c,null))[_0xc48f('0x25')](respondWithResult(_0x53e37c,null))[_0xc48f('0x41')](handleError(_0x53e37c,null));};exports[_0xc48f('0x47')]=function(_0x2cb62a,_0x466842){return db[_0xc48f('0x3f')][_0xc48f('0x47')](_0x2cb62a[_0xc48f('0x48')],{})[_0xc48f('0x25')](function(_0x5b9722){var _0x17ff48=_0x2cb62a[_0xc48f('0x49')]['get']({'plain':!![]});if(!_0x17ff48)throw new Error(_0xc48f('0x4a'));if(_0x17ff48[_0xc48f('0x4b')]===_0xc48f('0x49')){var _0x6d7924=_0x5b9722[_0xc48f('0x4c')]({'plain':!![]});var _0x22493c=_0xc48f('0x4d');return db[_0xc48f('0x4e')][_0xc48f('0x46')]({'where':{'name':_0x22493c,'userProfileId':_0x17ff48['userProfileId']},'raw':!![]})['then'](function(_0x16f0e8){if(_0x16f0e8&&_0x16f0e8['autoAssociation']===0x0){return db[_0xc48f('0x27')][_0xc48f('0x47')]({'name':_0x6d7924[_0xc48f('0x30')],'resourceId':_0x6d7924['id'],'type':_0x16f0e8[_0xc48f('0x30')],'sectionId':_0x16f0e8['id']},{})['then'](function(){return _0x5b9722;});}else{return _0x5b9722;}})[_0xc48f('0x41')](function(_0x3032b8){logger[_0xc48f('0x4f')](_0xc48f('0x50'),_0x3032b8);throw _0x3032b8;});}return _0x5b9722;})[_0xc48f('0x25')](respondWithResult(_0x466842,0xc9))['catch'](handleError(_0x466842,null));};exports[_0xc48f('0x24')]=function(_0x587962,_0x554609){if(_0x587962[_0xc48f('0x48')]['id']){delete _0x587962[_0xc48f('0x48')]['id'];}return db[_0xc48f('0x3f')]['find']({'where':{'id':_0x587962['params']['id']}})['then'](handleEntityNotFound(_0x554609,null))[_0xc48f('0x25')](saveUpdates(_0x587962['body'],null))[_0xc48f('0x25')](respondWithResult(_0x554609,null))['catch'](handleError(_0x554609,null));};exports[_0xc48f('0x26')]=function(_0x27aa54,_0xa4db37){return db[_0xc48f('0x3f')][_0xc48f('0x46')]({'where':{'id':_0x27aa54['params']['id']}})['then'](handleEntityNotFound(_0xa4db37,null))[_0xc48f('0x25')](removeEntity(_0xa4db37,null))[_0xc48f('0x41')](handleError(_0xa4db37,null));};