0c106019016fe936b288bc940364048bf82ab531
[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 _0xa6b5=['crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','sendStatus','status','end','json','count','offset','limit','Content-Range','reject','save','update','then','destroy','get','Pauses','UserProfileResource','error','name','index','Pause','rawAttributes','fieldName','type','model','query','keys','filters','intersection','attributes','length','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','include','catch','show','params','fields','find','create','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','userProfileId','autoAssociation','html-pdf','eml-format','rimraf','fast-json-patch','request-promise','moment','util','lodash','squel'];(function(_0x4cf98e,_0xba4b79){var _0x1623ac=function(_0x459bc0){while(--_0x459bc0){_0x4cf98e['push'](_0x4cf98e['shift']());}};_0x1623ac(++_0xba4b79);}(_0xa6b5,0x117));var _0x5a6b=function(_0x2ad8e8,_0x501c86){_0x2ad8e8=_0x2ad8e8-0x0;var _0x514f54=_0xa6b5[_0x2ad8e8];return _0x514f54;};'use strict';var pdf=require(_0x5a6b('0x0'));var emlformat=require(_0x5a6b('0x1'));var rimraf=require(_0x5a6b('0x2'));var zipdir=require('zip-dir');var jsonpatch=require(_0x5a6b('0x3'));var rp=require(_0x5a6b('0x4'));var moment=require(_0x5a6b('0x5'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x5a6b('0x6'));var path=require('path');var sox=require('sox');var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var _=require(_0x5a6b('0x7'));var squel=require(_0x5a6b('0x8'));var crypto=require(_0x5a6b('0x9'));var jsforce=require(_0x5a6b('0xa'));var deskjs=require(_0x5a6b('0xb'));var toCsv=require(_0x5a6b('0xc'));var querystring=require(_0x5a6b('0xd'));var Papa=require(_0x5a6b('0xe'));var Redis=require(_0x5a6b('0xf'));var authService=require(_0x5a6b('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0x5a6b('0x11'));var hardwareService=require(_0x5a6b('0x12'));var logger=require(_0x5a6b('0x13'))(_0x5a6b('0x14'));var utils=require('../../config/utils');var config=require(_0x5a6b('0x15'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x27c16c,_0x192e6c){_0x192e6c=_0x192e6c||0xcc;return function(_0x13b945){if(_0x13b945){return _0x27c16c[_0x5a6b('0x16')](_0x192e6c);}return _0x27c16c[_0x5a6b('0x17')](_0x192e6c)[_0x5a6b('0x18')]();};}function respondWithResult(_0x4ed630,_0x27b889){_0x27b889=_0x27b889||0xc8;return function(_0x12e876){if(_0x12e876){return _0x4ed630[_0x5a6b('0x17')](_0x27b889)[_0x5a6b('0x19')](_0x12e876);}};}function respondWithFilteredResult(_0x319335,_0x7b7b67){return function(_0x5ef68d){if(_0x5ef68d){var _0xd37ad2=_0x5ef68d[_0x5a6b('0x1a')],_0x886f22=_0x7b7b67[_0x5a6b('0x1b')],_0x170f67=_0x7b7b67[_0x5a6b('0x1b')]+_0x7b7b67[_0x5a6b('0x1c')],_0x5ba2ab;if(_0x170f67>=_0xd37ad2){_0x170f67=_0xd37ad2;_0x5ba2ab=0xc8;}else{_0x5ba2ab=0xce;}_0x319335[_0x5a6b('0x17')](_0x5ba2ab);return _0x319335['set'](_0x5a6b('0x1d'),_0x886f22+'-'+_0x170f67+'/'+_0xd37ad2)[_0x5a6b('0x19')](_0x5ef68d);}return null;};}function patchUpdates(_0x3bbd87){return function(_0x52a58c){try{jsonpatch['apply'](_0x52a58c,_0x3bbd87,!![]);}catch(_0x3559bf){return BPromise[_0x5a6b('0x1e')](_0x3559bf);}return _0x52a58c[_0x5a6b('0x1f')]();};}function saveUpdates(_0x5d48fa,_0x5cb69b){return function(_0x571ca6){if(_0x571ca6){return _0x571ca6[_0x5a6b('0x20')](_0x5d48fa)[_0x5a6b('0x21')](function(_0x35364b){return _0x35364b;});}return null;};}function removeEntity(_0x18a100,_0x2e4fce){return function(_0x44b2af){if(_0x44b2af){return _0x44b2af[_0x5a6b('0x22')]()['then'](function(){var _0x3b71e9=_0x44b2af[_0x5a6b('0x23')]({'plain':!![]});var _0x4ce565=_0x5a6b('0x24');return db[_0x5a6b('0x25')]['destroy']({'where':{'type':_0x4ce565,'resourceId':_0x3b71e9['id']}})['then'](function(){return _0x44b2af;});})['then'](function(){_0x18a100[_0x5a6b('0x17')](0xcc)[_0x5a6b('0x18')]();});}};}function handleEntityNotFound(_0x2f651b,_0x2278ff){return function(_0x1e860e){if(!_0x1e860e){_0x2f651b[_0x5a6b('0x16')](0x194);}return _0x1e860e;};}function handleError(_0x494478,_0x4d68a5){_0x4d68a5=_0x4d68a5||0x1f4;return function(_0x465608){logger[_0x5a6b('0x26')](_0x465608['stack']);if(_0x465608[_0x5a6b('0x27')]){delete _0x465608['name'];}_0x494478[_0x5a6b('0x17')](_0x4d68a5)['send'](_0x465608);};}exports[_0x5a6b('0x28')]=function(_0x47a83d,_0x47a80b){var _0x1da319={},_0x274353={},_0x4b2d11={'count':0x0,'rows':[]};var _0x1cab0f=_['map'](db[_0x5a6b('0x29')][_0x5a6b('0x2a')],function(_0x496890){return{'name':_0x496890[_0x5a6b('0x2b')],'type':_0x496890[_0x5a6b('0x2c')]['key']};});_0x274353[_0x5a6b('0x2d')]=_['map'](_0x1cab0f,'name');_0x274353[_0x5a6b('0x2e')]=_[_0x5a6b('0x2f')](_0x47a83d[_0x5a6b('0x2e')]);_0x274353[_0x5a6b('0x30')]=_[_0x5a6b('0x31')](_0x274353['model'],_0x274353[_0x5a6b('0x2e')]);_0x1da319[_0x5a6b('0x32')]=_[_0x5a6b('0x31')](_0x274353[_0x5a6b('0x2d')],qs['fields'](_0x47a83d[_0x5a6b('0x2e')]['fields']));_0x1da319[_0x5a6b('0x32')]=_0x1da319[_0x5a6b('0x32')][_0x5a6b('0x33')]?_0x1da319[_0x5a6b('0x32')]:_0x274353['model'];if(!_0x47a83d[_0x5a6b('0x2e')]['hasOwnProperty'](_0x5a6b('0x34'))){_0x1da319[_0x5a6b('0x1c')]=qs[_0x5a6b('0x1c')](_0x47a83d['query'][_0x5a6b('0x1c')]);_0x1da319['offset']=qs[_0x5a6b('0x1b')](_0x47a83d[_0x5a6b('0x2e')][_0x5a6b('0x1b')]);}_0x1da319[_0x5a6b('0x35')]=qs[_0x5a6b('0x36')](_0x47a83d[_0x5a6b('0x2e')][_0x5a6b('0x36')]);_0x1da319[_0x5a6b('0x37')]=qs[_0x5a6b('0x30')](_[_0x5a6b('0x38')](_0x47a83d[_0x5a6b('0x2e')],_0x274353[_0x5a6b('0x30')]));if(_0x47a83d[_0x5a6b('0x2e')][_0x5a6b('0x39')]){_0x1da319['where']=_[_0x5a6b('0x3a')](_0x1da319[_0x5a6b('0x37')],{'$or':_['map'](_0x1cab0f,function(_0x536e9d){if(_0x536e9d[_0x5a6b('0x2c')]!==_0x5a6b('0x3b')){var _0x191ff6={};_0x191ff6[_0x536e9d[_0x5a6b('0x27')]]={'$like':'%'+_0x47a83d['query']['filter']+'%'};return _0x191ff6;}})});}_0x1da319=_[_0x5a6b('0x3a')]({},_0x1da319,_0x47a83d[_0x5a6b('0x3c')]);var _0x4ff959={'where':_0x1da319[_0x5a6b('0x37')]};return db[_0x5a6b('0x29')]['count'](_0x4ff959)[_0x5a6b('0x21')](function(_0x11c965){_0x4b2d11[_0x5a6b('0x1a')]=_0x11c965;if(_0x47a83d['query']['includeAll']){_0x1da319[_0x5a6b('0x3d')]=[{'all':!![]}];}return db[_0x5a6b('0x29')]['findAll'](_0x1da319);})[_0x5a6b('0x21')](function(_0x434da8){_0x4b2d11['rows']=_0x434da8;return _0x4b2d11;})[_0x5a6b('0x21')](respondWithFilteredResult(_0x47a80b,_0x1da319))[_0x5a6b('0x3e')](handleError(_0x47a80b,null));};exports[_0x5a6b('0x3f')]=function(_0x37266c,_0x5dfe0b){var _0x23ffa0={'raw':!![],'where':{'id':_0x37266c[_0x5a6b('0x40')]['id']}},_0x31a46d={};_0x31a46d[_0x5a6b('0x2d')]=_['keys'](db[_0x5a6b('0x29')][_0x5a6b('0x2a')]);_0x31a46d['query']=_['keys'](_0x37266c[_0x5a6b('0x2e')]);_0x31a46d['filters']=_[_0x5a6b('0x31')](_0x31a46d[_0x5a6b('0x2d')],_0x31a46d[_0x5a6b('0x2e')]);_0x23ffa0[_0x5a6b('0x32')]=_['intersection'](_0x31a46d[_0x5a6b('0x2d')],qs[_0x5a6b('0x41')](_0x37266c[_0x5a6b('0x2e')][_0x5a6b('0x41')]));_0x23ffa0[_0x5a6b('0x32')]=_0x23ffa0[_0x5a6b('0x32')][_0x5a6b('0x33')]?_0x23ffa0['attributes']:_0x31a46d['model'];if(_0x37266c['query']['includeAll']){_0x23ffa0['include']=[{'all':!![]}];}_0x23ffa0=_['merge']({},_0x23ffa0,_0x37266c[_0x5a6b('0x3c')]);return db[_0x5a6b('0x29')][_0x5a6b('0x42')](_0x23ffa0)['then'](handleEntityNotFound(_0x5dfe0b,null))[_0x5a6b('0x21')](respondWithResult(_0x5dfe0b,null))[_0x5a6b('0x3e')](handleError(_0x5dfe0b,null));};exports[_0x5a6b('0x43')]=function(_0x7d7ee9,_0x1c585e){return db['Pause'][_0x5a6b('0x43')](_0x7d7ee9['body'],{})['then'](function(_0x360dbe){var _0x1dbbf3=_0x7d7ee9['user']['get']({'plain':!![]});if(!_0x1dbbf3)throw new Error(_0x5a6b('0x44'));if(_0x1dbbf3['role']==='user'){var _0x15d6da=_0x360dbe[_0x5a6b('0x23')]({'plain':!![]});var _0xd58881=_0x5a6b('0x24');return db[_0x5a6b('0x45')][_0x5a6b('0x42')]({'where':{'name':_0xd58881,'userProfileId':_0x1dbbf3[_0x5a6b('0x46')]},'raw':!![]})[_0x5a6b('0x21')](function(_0x3d6ff2){if(_0x3d6ff2&&_0x3d6ff2[_0x5a6b('0x47')]===0x0){return db[_0x5a6b('0x25')][_0x5a6b('0x43')]({'name':_0x15d6da[_0x5a6b('0x27')],'resourceId':_0x15d6da['id'],'type':_0x3d6ff2[_0x5a6b('0x27')],'sectionId':_0x3d6ff2['id']},{})[_0x5a6b('0x21')](function(){return _0x360dbe;});}else{return _0x360dbe;}})[_0x5a6b('0x3e')](function(_0xad54a2){logger[_0x5a6b('0x26')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0xad54a2);throw _0xad54a2;});}return _0x360dbe;})['then'](respondWithResult(_0x1c585e,0xc9))[_0x5a6b('0x3e')](handleError(_0x1c585e,null));};exports[_0x5a6b('0x20')]=function(_0x189efd,_0x5965a6){if(_0x189efd['body']['id']){delete _0x189efd['body']['id'];}return db['Pause'][_0x5a6b('0x42')]({'where':{'id':_0x189efd[_0x5a6b('0x40')]['id']}})[_0x5a6b('0x21')](handleEntityNotFound(_0x5965a6,null))['then'](saveUpdates(_0x189efd['body'],null))[_0x5a6b('0x21')](respondWithResult(_0x5965a6,null))[_0x5a6b('0x3e')](handleError(_0x5965a6,null));};exports['destroy']=function(_0x3d5828,_0x5f0139){return db[_0x5a6b('0x29')][_0x5a6b('0x42')]({'where':{'id':_0x3d5828[_0x5a6b('0x40')]['id']}})[_0x5a6b('0x21')](handleEntityNotFound(_0x5f0139,null))[_0x5a6b('0x21')](removeEntity(_0x5f0139,null))[_0x5a6b('0x3e')](handleError(_0x5f0139,null));};