2abfca98e43153815338a9c37a93e4f2dcca2170
[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 _0xd17d=['set','Content-Range','apply','update','then','destroy','get','Pauses','end','name','index','map','Pause','rawAttributes','fieldName','type','query','keys','filters','intersection','model','attributes','length','hasOwnProperty','nolimit','sort','where','pick','filter','merge','VIRTUAL','options','count','includeAll','include','findAll','rows','params','fields','find','catch','create','role','user','userProfileId','UserProfileResource','error','body','eml-format','rimraf','zip-dir','moment','util','path','sox','to-csv','ejs','fs-extra','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','undefined','limit','offset'];(function(_0x4e676e,_0x2a7c6d){var _0x336a3c=function(_0x4767c4){while(--_0x4767c4){_0x4e676e['push'](_0x4e676e['shift']());}};_0x336a3c(++_0x2a7c6d);}(_0xd17d,0x117));var _0xdd17=function(_0x2b2e14,_0x54c3e5){_0x2b2e14=_0x2b2e14-0x0;var _0x25d378=_0xd17d[_0x2b2e14];return _0x25d378;};'use strict';var emlformat=require(_0xdd17('0x0'));var rimraf=require(_0xdd17('0x1'));var zipdir=require(_0xdd17('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0xdd17('0x3'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0xdd17('0x4'));var path=require(_0xdd17('0x5'));var sox=require(_0xdd17('0x6'));var csv=require(_0xdd17('0x7'));var ejs=require(_0xdd17('0x8'));var fs=require('fs');var fs_extra=require(_0xdd17('0x9'));var _=require('lodash');var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0xdd17('0xa'));var deskjs=require(_0xdd17('0xb'));var toCsv=require(_0xdd17('0x7'));var querystring=require(_0xdd17('0xc'));var Papa=require('papaparse');var Redis=require(_0xdd17('0xd'));var authService=require(_0xdd17('0xe'));var qs=require(_0xdd17('0xf'));var as=require(_0xdd17('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xdd17('0x11'))(_0xdd17('0x12'));var utils=require(_0xdd17('0x13'));var config=require(_0xdd17('0x14'));var licenseUtil=require(_0xdd17('0x15'));var db=require(_0xdd17('0x16'))['db'];function respondWithStatusCode(_0x54323c,_0x4b1fa6){_0x4b1fa6=_0x4b1fa6||0xcc;return function(_0x45c66b){if(_0x45c66b){return _0x54323c[_0xdd17('0x17')](_0x4b1fa6);}return _0x54323c[_0xdd17('0x18')](_0x4b1fa6)['end']();};}function respondWithResult(_0x47524f,_0x82673f){_0x82673f=_0x82673f||0xc8;return function(_0x63fff1){if(_0x63fff1){return _0x47524f['status'](_0x82673f)[_0xdd17('0x19')](_0x63fff1);}};}function respondWithFilteredResult(_0x1d593b,_0x54e8cc){return function(_0x49f636){if(_0x49f636){var _0x2d1232=typeof _0x54e8cc['offset']===_0xdd17('0x1a')&&typeof _0x54e8cc[_0xdd17('0x1b')]===_0xdd17('0x1a');var _0x47fdab=_0x49f636['count'];var _0x4ed9fc=_0x2d1232?0x0:_0x54e8cc['offset'];var _0x350bf2=_0x2d1232?_0x49f636['count']:_0x54e8cc[_0xdd17('0x1c')]+_0x54e8cc[_0xdd17('0x1b')];var _0x46743a;if(_0x350bf2>=_0x47fdab){_0x350bf2=_0x47fdab;_0x46743a=0xc8;}else{_0x46743a=0xce;}_0x1d593b['status'](_0x46743a);return _0x1d593b[_0xdd17('0x1d')](_0xdd17('0x1e'),_0x4ed9fc+'-'+_0x350bf2+'/'+_0x47fdab)[_0xdd17('0x19')](_0x49f636);}return null;};}function patchUpdates(_0x5929cc){return function(_0xd4f362){try{jsonpatch[_0xdd17('0x1f')](_0xd4f362,_0x5929cc,!![]);}catch(_0x685b1a){return BPromise['reject'](_0x685b1a);}return _0xd4f362['save']();};}function saveUpdates(_0x276ed5,_0x2a80ed){return function(_0x469fba){if(_0x469fba){return _0x469fba[_0xdd17('0x20')](_0x276ed5)[_0xdd17('0x21')](function(_0x35abc1){return _0x35abc1;});}return null;};}function removeEntity(_0x202aab,_0x4a7b5b){return function(_0x13cbad){if(_0x13cbad){return _0x13cbad[_0xdd17('0x22')]()[_0xdd17('0x21')](function(){var _0x39f953=_0x13cbad[_0xdd17('0x23')]({'plain':!![]});var _0x49ccbb=_0xdd17('0x24');return db['UserProfileResource'][_0xdd17('0x22')]({'where':{'type':_0x49ccbb,'resourceId':_0x39f953['id']}})[_0xdd17('0x21')](function(){return _0x13cbad;});})[_0xdd17('0x21')](function(){_0x202aab[_0xdd17('0x18')](0xcc)[_0xdd17('0x25')]();});}};}function handleEntityNotFound(_0x5220e7,_0x5683d1){return function(_0x1a1abb){if(!_0x1a1abb){_0x5220e7[_0xdd17('0x17')](0x194);}return _0x1a1abb;};}function handleError(_0x4d95e8,_0x4db7ef){_0x4db7ef=_0x4db7ef||0x1f4;return function(_0x806d61){logger['error'](_0x806d61['stack']);if(_0x806d61[_0xdd17('0x26')]){delete _0x806d61[_0xdd17('0x26')];}_0x4d95e8['status'](_0x4db7ef)['send'](_0x806d61);};}exports[_0xdd17('0x27')]=function(_0x489e4a,_0x156cc7){var _0x1698ec={},_0x379be9={},_0x1dc4b0={'count':0x0,'rows':[]};var _0x3767fd=_[_0xdd17('0x28')](db[_0xdd17('0x29')][_0xdd17('0x2a')],function(_0xaa322f){return{'name':_0xaa322f[_0xdd17('0x2b')],'type':_0xaa322f[_0xdd17('0x2c')]['key']};});_0x379be9['model']=_[_0xdd17('0x28')](_0x3767fd,_0xdd17('0x26'));_0x379be9[_0xdd17('0x2d')]=_[_0xdd17('0x2e')](_0x489e4a[_0xdd17('0x2d')]);_0x379be9[_0xdd17('0x2f')]=_[_0xdd17('0x30')](_0x379be9[_0xdd17('0x31')],_0x379be9[_0xdd17('0x2d')]);_0x1698ec[_0xdd17('0x32')]=_['intersection'](_0x379be9[_0xdd17('0x31')],qs['fields'](_0x489e4a[_0xdd17('0x2d')]['fields']));_0x1698ec[_0xdd17('0x32')]=_0x1698ec[_0xdd17('0x32')][_0xdd17('0x33')]?_0x1698ec[_0xdd17('0x32')]:_0x379be9[_0xdd17('0x31')];if(!_0x489e4a[_0xdd17('0x2d')][_0xdd17('0x34')](_0xdd17('0x35'))){_0x1698ec[_0xdd17('0x1b')]=qs[_0xdd17('0x1b')](_0x489e4a[_0xdd17('0x2d')][_0xdd17('0x1b')]);_0x1698ec['offset']=qs[_0xdd17('0x1c')](_0x489e4a['query'][_0xdd17('0x1c')]);}_0x1698ec['order']=qs[_0xdd17('0x36')](_0x489e4a[_0xdd17('0x2d')]['sort']);_0x1698ec[_0xdd17('0x37')]=qs[_0xdd17('0x2f')](_[_0xdd17('0x38')](_0x489e4a[_0xdd17('0x2d')],_0x379be9[_0xdd17('0x2f')]),_0x3767fd);if(_0x489e4a['query'][_0xdd17('0x39')]){_0x1698ec[_0xdd17('0x37')]=_[_0xdd17('0x3a')](_0x1698ec[_0xdd17('0x37')],{'$or':_['map'](_0x3767fd,function(_0x4502cc){if(_0x4502cc['type']!==_0xdd17('0x3b')){var _0x36e550={};_0x36e550[_0x4502cc[_0xdd17('0x26')]]={'$like':'%'+_0x489e4a['query']['filter']+'%'};return _0x36e550;}})});}_0x1698ec=_[_0xdd17('0x3a')]({},_0x1698ec,_0x489e4a[_0xdd17('0x3c')]);var _0x1803c4={'where':_0x1698ec[_0xdd17('0x37')]};return db[_0xdd17('0x29')][_0xdd17('0x3d')](_0x1803c4)[_0xdd17('0x21')](function(_0x430bea){_0x1dc4b0['count']=_0x430bea;if(_0x489e4a[_0xdd17('0x2d')][_0xdd17('0x3e')]){_0x1698ec[_0xdd17('0x3f')]=[{'all':!![]}];}return db['Pause'][_0xdd17('0x40')](_0x1698ec);})[_0xdd17('0x21')](function(_0x2ad768){_0x1dc4b0[_0xdd17('0x41')]=_0x2ad768;return _0x1dc4b0;})[_0xdd17('0x21')](respondWithFilteredResult(_0x156cc7,_0x1698ec))['catch'](handleError(_0x156cc7,null));};exports['show']=function(_0x386dc4,_0x134297){var _0x25db54={'raw':!![],'where':{'id':_0x386dc4[_0xdd17('0x42')]['id']}},_0x17d66e={};_0x17d66e['model']=_[_0xdd17('0x2e')](db[_0xdd17('0x29')][_0xdd17('0x2a')]);_0x17d66e['query']=_['keys'](_0x386dc4[_0xdd17('0x2d')]);_0x17d66e[_0xdd17('0x2f')]=_[_0xdd17('0x30')](_0x17d66e['model'],_0x17d66e[_0xdd17('0x2d')]);_0x25db54[_0xdd17('0x32')]=_['intersection'](_0x17d66e[_0xdd17('0x31')],qs[_0xdd17('0x43')](_0x386dc4[_0xdd17('0x2d')][_0xdd17('0x43')]));_0x25db54[_0xdd17('0x32')]=_0x25db54['attributes'][_0xdd17('0x33')]?_0x25db54['attributes']:_0x17d66e[_0xdd17('0x31')];if(_0x386dc4[_0xdd17('0x2d')]['includeAll']){_0x25db54[_0xdd17('0x3f')]=[{'all':!![]}];}_0x25db54=_['merge']({},_0x25db54,_0x386dc4[_0xdd17('0x3c')]);return db[_0xdd17('0x29')][_0xdd17('0x44')](_0x25db54)[_0xdd17('0x21')](handleEntityNotFound(_0x134297,null))[_0xdd17('0x21')](respondWithResult(_0x134297,null))[_0xdd17('0x45')](handleError(_0x134297,null));};exports[_0xdd17('0x46')]=function(_0x5ece60,_0x37fe2b){return db['Pause'][_0xdd17('0x46')](_0x5ece60['body'],{})[_0xdd17('0x21')](function(_0x6cc7b5){var _0x1114c4=_0x5ece60['user'][_0xdd17('0x23')]({'plain':!![]});if(!_0x1114c4)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x1114c4[_0xdd17('0x47')]===_0xdd17('0x48')){var _0x3135a9=_0x6cc7b5[_0xdd17('0x23')]({'plain':!![]});var _0x220665=_0xdd17('0x24');return db['UserProfileSection']['find']({'where':{'name':_0x220665,'userProfileId':_0x1114c4[_0xdd17('0x49')]},'raw':!![]})[_0xdd17('0x21')](function(_0x1d8095){if(_0x1d8095&&_0x1d8095['autoAssociation']===0x0){return db[_0xdd17('0x4a')][_0xdd17('0x46')]({'name':_0x3135a9[_0xdd17('0x26')],'resourceId':_0x3135a9['id'],'type':_0x1d8095[_0xdd17('0x26')],'sectionId':_0x1d8095['id']},{})[_0xdd17('0x21')](function(){return _0x6cc7b5;});}else{return _0x6cc7b5;}})['catch'](function(_0x737b96){logger[_0xdd17('0x4b')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x737b96);throw _0x737b96;});}return _0x6cc7b5;})[_0xdd17('0x21')](respondWithResult(_0x37fe2b,0xc9))[_0xdd17('0x45')](handleError(_0x37fe2b,null));};exports[_0xdd17('0x20')]=function(_0x36ef5e,_0x2e4258){if(_0x36ef5e[_0xdd17('0x4c')]['id']){delete _0x36ef5e['body']['id'];}return db[_0xdd17('0x29')]['find']({'where':{'id':_0x36ef5e[_0xdd17('0x42')]['id']}})['then'](handleEntityNotFound(_0x2e4258,null))[_0xdd17('0x21')](saveUpdates(_0x36ef5e[_0xdd17('0x4c')],null))[_0xdd17('0x21')](respondWithResult(_0x2e4258,null))['catch'](handleError(_0x2e4258,null));};exports[_0xdd17('0x22')]=function(_0x358417,_0x102658){return db['Pause']['find']({'where':{'id':_0x358417['params']['id']}})[_0xdd17('0x21')](handleEntityNotFound(_0x102658,null))[_0xdd17('0x21')](removeEntity(_0x102658,null))['catch'](handleError(_0x102658,null));};