0367f0f92e778daa1245e802b62dd4eafd38b09a
[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 _0xcba5=['../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','json','offset','undefined','count','limit','set','Content-Range','reject','save','update','then','Pauses','UserProfileResource','destroy','name','send','render','merge','body','contact','agent','account','index','map','Pause','rawAttributes','type','key','model','query','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','filter','VIRTUAL','includeAll','findAll','rows','show','keys','options','find','catch','create','user','get','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','../../components/auth/service','../../components/parsers/qs','../../config/logger','api','../../config/utils'];(function(_0x107179,_0x518e11){var _0x11e955=function(_0x1246c8){while(--_0x1246c8){_0x107179['push'](_0x107179['shift']());}};_0x11e955(++_0x518e11);}(_0xcba5,0x198));var _0x5cba=function(_0x53ccf2,_0x13cb67){_0x53ccf2=_0x53ccf2-0x0;var _0x5a2964=_0xcba5[_0x53ccf2];return _0x5a2964;};'use strict';var emlformat=require(_0x5cba('0x0'));var rimraf=require(_0x5cba('0x1'));var zipdir=require(_0x5cba('0x2'));var jsonpatch=require(_0x5cba('0x3'));var rp=require('request-promise');var moment=require(_0x5cba('0x4'));var BPromise=require(_0x5cba('0x5'));var Mustache=require(_0x5cba('0x6'));var util=require(_0x5cba('0x7'));var path=require(_0x5cba('0x8'));var sox=require(_0x5cba('0x9'));var csv=require(_0x5cba('0xa'));var ejs=require(_0x5cba('0xb'));var fs=require('fs');var fs_extra=require(_0x5cba('0xc'));var _=require(_0x5cba('0xd'));var squel=require(_0x5cba('0xe'));var crypto=require(_0x5cba('0xf'));var jsforce=require(_0x5cba('0x10'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x5cba('0x11'));var qs=require(_0x5cba('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x5cba('0x13'))(_0x5cba('0x14'));var utils=require(_0x5cba('0x15'));var config=require(_0x5cba('0x16'));var licenseUtil=require(_0x5cba('0x17'));var db=require(_0x5cba('0x18'))['db'];function respondWithStatusCode(_0x55dd94,_0x139e6b){_0x139e6b=_0x139e6b||0xcc;return function(_0x19ab1b){if(_0x19ab1b){return _0x55dd94[_0x5cba('0x19')](_0x139e6b);}return _0x55dd94['status'](_0x139e6b)[_0x5cba('0x1a')]();};}function respondWithResult(_0x524204,_0x29aa9a){_0x29aa9a=_0x29aa9a||0xc8;return function(_0x40ec3e){if(_0x40ec3e){return _0x524204[_0x5cba('0x1b')](_0x29aa9a)[_0x5cba('0x1c')](_0x40ec3e);}};}function respondWithFilteredResult(_0x3be5f3,_0xd4a41c){return function(_0x1dfc71){if(_0x1dfc71){var _0x2217ee=typeof _0xd4a41c[_0x5cba('0x1d')]===_0x5cba('0x1e')&&typeof _0xd4a41c['limit']===_0x5cba('0x1e');var _0x2fbf0c=_0x1dfc71[_0x5cba('0x1f')];var _0x4a7cf9=_0x2217ee?0x0:_0xd4a41c[_0x5cba('0x1d')];var _0x16514c=_0x2217ee?_0x1dfc71[_0x5cba('0x1f')]:_0xd4a41c['offset']+_0xd4a41c[_0x5cba('0x20')];var _0x121359;if(_0x16514c>=_0x2fbf0c){_0x16514c=_0x2fbf0c;_0x121359=0xc8;}else{_0x121359=0xce;}_0x3be5f3['status'](_0x121359);return _0x3be5f3[_0x5cba('0x21')](_0x5cba('0x22'),_0x4a7cf9+'-'+_0x16514c+'/'+_0x2fbf0c)[_0x5cba('0x1c')](_0x1dfc71);}return null;};}function patchUpdates(_0x6bfc65){return function(_0x8133c5){try{jsonpatch['apply'](_0x8133c5,_0x6bfc65,!![]);}catch(_0x23e527){return BPromise[_0x5cba('0x23')](_0x23e527);}return _0x8133c5[_0x5cba('0x24')]();};}function saveUpdates(_0x362d04,_0x4562d9){return function(_0x139468){if(_0x139468){return _0x139468[_0x5cba('0x25')](_0x362d04)[_0x5cba('0x26')](function(_0x57295a){return _0x57295a;});}return null;};}function removeEntity(_0x3086a0,_0x516f5e){return function(_0x15a457){if(_0x15a457){return _0x15a457['destroy']()[_0x5cba('0x26')](function(){var _0xbf0339=_0x15a457['get']({'plain':!![]});var _0x589d26=_0x5cba('0x27');return db[_0x5cba('0x28')][_0x5cba('0x29')]({'where':{'type':_0x589d26,'resourceId':_0xbf0339['id']}})['then'](function(){return _0x15a457;});})['then'](function(){_0x3086a0['status'](0xcc)[_0x5cba('0x1a')]();});}};}function handleEntityNotFound(_0x422c4f,_0x4544f1){return function(_0x830784){if(!_0x830784){_0x422c4f[_0x5cba('0x19')](0x194);}return _0x830784;};}function handleError(_0x4b2ba2,_0x3e6756){_0x3e6756=_0x3e6756||0x1f4;return function(_0x213209){logger['error'](_0x213209['stack']);if(_0x213209[_0x5cba('0x2a')]){delete _0x213209[_0x5cba('0x2a')];}_0x4b2ba2['status'](_0x3e6756)[_0x5cba('0x2b')](_0x213209);};}function getMustacheRender(_0x4bcff9,_0x383c93){return Mustache[_0x5cba('0x2c')](_0x4bcff9,_[_0x5cba('0x2d')](_0x383c93[_0x5cba('0x2e')],{'contact':_0x383c93[_0x5cba('0x2f')],'message':_0x383c93['message'],'agent':_0x383c93[_0x5cba('0x30')],'interaction':_0x383c93['interaction'],'account':_0x383c93[_0x5cba('0x31')]}))||'';}exports[_0x5cba('0x32')]=function(_0x33e4d3,_0x115262){var _0x94b223={},_0x386a44={},_0x1238db={'count':0x0,'rows':[]};var _0x13b351=_[_0x5cba('0x33')](db[_0x5cba('0x34')][_0x5cba('0x35')],function(_0x1ffd61){return{'name':_0x1ffd61['fieldName'],'type':_0x1ffd61[_0x5cba('0x36')][_0x5cba('0x37')]};});_0x386a44[_0x5cba('0x38')]=_['map'](_0x13b351,_0x5cba('0x2a'));_0x386a44[_0x5cba('0x39')]=_['keys'](_0x33e4d3[_0x5cba('0x39')]);_0x386a44['filters']=_[_0x5cba('0x3a')](_0x386a44[_0x5cba('0x38')],_0x386a44['query']);_0x94b223[_0x5cba('0x3b')]=_[_0x5cba('0x3a')](_0x386a44[_0x5cba('0x38')],qs['fields'](_0x33e4d3['query'][_0x5cba('0x3c')]));_0x94b223[_0x5cba('0x3b')]=_0x94b223[_0x5cba('0x3b')][_0x5cba('0x3d')]?_0x94b223[_0x5cba('0x3b')]:_0x386a44[_0x5cba('0x38')];if(!_0x33e4d3[_0x5cba('0x39')][_0x5cba('0x3e')](_0x5cba('0x3f'))){_0x94b223[_0x5cba('0x20')]=qs['limit'](_0x33e4d3[_0x5cba('0x39')][_0x5cba('0x20')]);_0x94b223['offset']=qs[_0x5cba('0x1d')](_0x33e4d3[_0x5cba('0x39')]['offset']);}_0x94b223[_0x5cba('0x40')]=qs[_0x5cba('0x41')](_0x33e4d3[_0x5cba('0x39')][_0x5cba('0x41')]);_0x94b223[_0x5cba('0x42')]=qs[_0x5cba('0x43')](_[_0x5cba('0x44')](_0x33e4d3[_0x5cba('0x39')],_0x386a44[_0x5cba('0x43')]),_0x13b351);if(_0x33e4d3[_0x5cba('0x39')][_0x5cba('0x45')]){_0x94b223[_0x5cba('0x42')]=_[_0x5cba('0x2d')](_0x94b223['where'],{'$or':_[_0x5cba('0x33')](_0x13b351,function(_0x38bdf2){if(_0x38bdf2[_0x5cba('0x36')]!==_0x5cba('0x46')){var _0x3e0906={};_0x3e0906[_0x38bdf2[_0x5cba('0x2a')]]={'$like':'%'+_0x33e4d3['query'][_0x5cba('0x45')]+'%'};return _0x3e0906;}})});}_0x94b223=_[_0x5cba('0x2d')]({},_0x94b223,_0x33e4d3['options']);var _0x172850={'where':_0x94b223[_0x5cba('0x42')]};return db[_0x5cba('0x34')][_0x5cba('0x1f')](_0x172850)[_0x5cba('0x26')](function(_0x4788b1){_0x1238db[_0x5cba('0x1f')]=_0x4788b1;if(_0x33e4d3['query'][_0x5cba('0x47')]){_0x94b223['include']=[{'all':!![]}];}return db[_0x5cba('0x34')][_0x5cba('0x48')](_0x94b223);})[_0x5cba('0x26')](function(_0x3db73c){_0x1238db[_0x5cba('0x49')]=_0x3db73c;return _0x1238db;})['then'](respondWithFilteredResult(_0x115262,_0x94b223))['catch'](handleError(_0x115262,null));};exports[_0x5cba('0x4a')]=function(_0x4cb152,_0x27a413){var _0x3f3d9b={'raw':!![],'where':{'id':_0x4cb152['params']['id']}},_0x19421f={};_0x19421f['model']=_[_0x5cba('0x4b')](db['Pause'][_0x5cba('0x35')]);_0x19421f[_0x5cba('0x39')]=_[_0x5cba('0x4b')](_0x4cb152[_0x5cba('0x39')]);_0x19421f[_0x5cba('0x43')]=_[_0x5cba('0x3a')](_0x19421f['model'],_0x19421f['query']);_0x3f3d9b['attributes']=_['intersection'](_0x19421f['model'],qs[_0x5cba('0x3c')](_0x4cb152[_0x5cba('0x39')][_0x5cba('0x3c')]));_0x3f3d9b[_0x5cba('0x3b')]=_0x3f3d9b[_0x5cba('0x3b')][_0x5cba('0x3d')]?_0x3f3d9b[_0x5cba('0x3b')]:_0x19421f[_0x5cba('0x38')];if(_0x4cb152[_0x5cba('0x39')][_0x5cba('0x47')]){_0x3f3d9b['include']=[{'all':!![]}];}_0x3f3d9b=_[_0x5cba('0x2d')]({},_0x3f3d9b,_0x4cb152[_0x5cba('0x4c')]);return db[_0x5cba('0x34')][_0x5cba('0x4d')](_0x3f3d9b)[_0x5cba('0x26')](handleEntityNotFound(_0x27a413,null))[_0x5cba('0x26')](respondWithResult(_0x27a413,null))[_0x5cba('0x4e')](handleError(_0x27a413,null));};exports['create']=function(_0xae4d3d,_0x56a67a){return db[_0x5cba('0x34')][_0x5cba('0x4f')](_0xae4d3d['body'],{})[_0x5cba('0x26')](function(_0x4a10f8){var _0x52b193=_0xae4d3d[_0x5cba('0x50')][_0x5cba('0x51')]({'plain':!![]});if(!_0x52b193)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x52b193['role']===_0x5cba('0x50')){var _0x4cfc2c=_0x4a10f8['get']({'plain':!![]});var _0x1aad2b=_0x5cba('0x27');return db[_0x5cba('0x52')][_0x5cba('0x4d')]({'where':{'name':_0x1aad2b,'userProfileId':_0x52b193['userProfileId']},'raw':!![]})[_0x5cba('0x26')](function(_0x196667){if(_0x196667&&_0x196667[_0x5cba('0x53')]===0x0){return db[_0x5cba('0x28')]['create']({'name':_0x4cfc2c[_0x5cba('0x2a')],'resourceId':_0x4cfc2c['id'],'type':_0x196667[_0x5cba('0x2a')],'sectionId':_0x196667['id']},{})[_0x5cba('0x26')](function(){return _0x4a10f8;});}else{return _0x4a10f8;}})[_0x5cba('0x4e')](function(_0x248ead){logger['error'](_0x5cba('0x54'),_0x248ead);throw _0x248ead;});}return _0x4a10f8;})[_0x5cba('0x26')](respondWithResult(_0x56a67a,0xc9))[_0x5cba('0x4e')](handleError(_0x56a67a,null));};exports[_0x5cba('0x25')]=function(_0x2bbde9,_0x311887){if(_0x2bbde9[_0x5cba('0x2e')]['id']){delete _0x2bbde9[_0x5cba('0x2e')]['id'];}return db[_0x5cba('0x34')]['find']({'where':{'id':_0x2bbde9[_0x5cba('0x55')]['id']}})[_0x5cba('0x26')](handleEntityNotFound(_0x311887,null))[_0x5cba('0x26')](saveUpdates(_0x2bbde9[_0x5cba('0x2e')],null))[_0x5cba('0x26')](respondWithResult(_0x311887,null))[_0x5cba('0x4e')](handleError(_0x311887,null));};exports[_0x5cba('0x29')]=function(_0x374815,_0x27e5db){return db[_0x5cba('0x34')]['find']({'where':{'id':_0x374815['params']['id']}})['then'](handleEntityNotFound(_0x27e5db,null))[_0x5cba('0x26')](removeEntity(_0x27e5db,null))[_0x5cba('0x4e')](handleError(_0x27e5db,null));};