a68bcb536d622ca90f3389c74a924340a78884ac
[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 _0x73b6=['sendStatus','error','stack','name','send','index','map','Pause','type','key','query','keys','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','merge','filter','includeAll','include','findAll','rows','catch','show','params','rawAttributes','options','create','body','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Pauses','UserProfileSection','find','userProfileId','autoAssociation','destroy','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','status','end','json','undefined','limit','count','offset','set','Content-Range','apply','save','then','UserProfileResource'];(function(_0x2de020,_0x252df0){var _0x182b7c=function(_0xcbcdaa){while(--_0xcbcdaa){_0x2de020['push'](_0x2de020['shift']());}};_0x182b7c(++_0x252df0);}(_0x73b6,0x12b));var _0x673b=function(_0x1ddedd,_0x485606){_0x1ddedd=_0x1ddedd-0x0;var _0xa3e1ac=_0x73b6[_0x1ddedd];return _0xa3e1ac;};'use strict';var emlformat=require(_0x673b('0x0'));var rimraf=require(_0x673b('0x1'));var zipdir=require(_0x673b('0x2'));var jsonpatch=require(_0x673b('0x3'));var rp=require('request-promise');var moment=require(_0x673b('0x4'));var BPromise=require(_0x673b('0x5'));var Mustache=require(_0x673b('0x6'));var util=require(_0x673b('0x7'));var path=require('path');var sox=require(_0x673b('0x8'));var csv=require('to-csv');var ejs=require(_0x673b('0x9'));var fs=require('fs');var fs_extra=require(_0x673b('0xa'));var _=require(_0x673b('0xb'));var squel=require(_0x673b('0xc'));var crypto=require(_0x673b('0xd'));var jsforce=require(_0x673b('0xe'));var deskjs=require(_0x673b('0xf'));var toCsv=require('to-csv');var querystring=require(_0x673b('0x10'));var Papa=require(_0x673b('0x11'));var Redis=require(_0x673b('0x12'));var authService=require('../../components/auth/service');var qs=require(_0x673b('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x673b('0x14'))('api');var utils=require(_0x673b('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0x673b('0x16'));var db=require(_0x673b('0x17'))['db'];function respondWithStatusCode(_0x544f26,_0x1d4a6e){_0x1d4a6e=_0x1d4a6e||0xcc;return function(_0x72aca){if(_0x72aca){return _0x544f26['sendStatus'](_0x1d4a6e);}return _0x544f26[_0x673b('0x18')](_0x1d4a6e)[_0x673b('0x19')]();};}function respondWithResult(_0x2cca21,_0x57e94a){_0x57e94a=_0x57e94a||0xc8;return function(_0x391f77){if(_0x391f77){return _0x2cca21['status'](_0x57e94a)[_0x673b('0x1a')](_0x391f77);}};}function respondWithFilteredResult(_0x4ef797,_0x2e3a20){return function(_0x590287){if(_0x590287){var _0x28f1d7=typeof _0x2e3a20['offset']===_0x673b('0x1b')&&typeof _0x2e3a20[_0x673b('0x1c')]==='undefined';var _0xd94540=_0x590287[_0x673b('0x1d')];var _0x50dd99=_0x28f1d7?0x0:_0x2e3a20[_0x673b('0x1e')];var _0x53ff74=_0x28f1d7?_0x590287[_0x673b('0x1d')]:_0x2e3a20[_0x673b('0x1e')]+_0x2e3a20[_0x673b('0x1c')];var _0x2ddaba;if(_0x53ff74>=_0xd94540){_0x53ff74=_0xd94540;_0x2ddaba=0xc8;}else{_0x2ddaba=0xce;}_0x4ef797[_0x673b('0x18')](_0x2ddaba);return _0x4ef797[_0x673b('0x1f')](_0x673b('0x20'),_0x50dd99+'-'+_0x53ff74+'/'+_0xd94540)[_0x673b('0x1a')](_0x590287);}return null;};}function patchUpdates(_0x36c6aa){return function(_0x2c87a2){try{jsonpatch[_0x673b('0x21')](_0x2c87a2,_0x36c6aa,!![]);}catch(_0x4137a9){return BPromise['reject'](_0x4137a9);}return _0x2c87a2[_0x673b('0x22')]();};}function saveUpdates(_0x2eb5f5,_0x193f79){return function(_0x57c986){if(_0x57c986){return _0x57c986['update'](_0x2eb5f5)[_0x673b('0x23')](function(_0x352d5d){return _0x352d5d;});}return null;};}function removeEntity(_0x350969,_0x59a725){return function(_0x2eca4b){if(_0x2eca4b){return _0x2eca4b['destroy']()[_0x673b('0x23')](function(){var _0x26878f=_0x2eca4b['get']({'plain':!![]});var _0x2a2833='Pauses';return db[_0x673b('0x24')]['destroy']({'where':{'type':_0x2a2833,'resourceId':_0x26878f['id']}})[_0x673b('0x23')](function(){return _0x2eca4b;});})[_0x673b('0x23')](function(){_0x350969['status'](0xcc)[_0x673b('0x19')]();});}};}function handleEntityNotFound(_0x5c357e,_0x46ec68){return function(_0x1452a8){if(!_0x1452a8){_0x5c357e[_0x673b('0x25')](0x194);}return _0x1452a8;};}function handleError(_0x39fdd0,_0xea30d){_0xea30d=_0xea30d||0x1f4;return function(_0x767996){logger[_0x673b('0x26')](_0x767996[_0x673b('0x27')]);if(_0x767996[_0x673b('0x28')]){delete _0x767996[_0x673b('0x28')];}_0x39fdd0['status'](_0xea30d)[_0x673b('0x29')](_0x767996);};}exports[_0x673b('0x2a')]=function(_0x430fb2,_0x245b32){var _0x4254cc={},_0x44e7c2={},_0x154dd6={'count':0x0,'rows':[]};var _0x5bc1a8=_[_0x673b('0x2b')](db[_0x673b('0x2c')]['rawAttributes'],function(_0x35b449){return{'name':_0x35b449['fieldName'],'type':_0x35b449[_0x673b('0x2d')][_0x673b('0x2e')]};});_0x44e7c2['model']=_[_0x673b('0x2b')](_0x5bc1a8,_0x673b('0x28'));_0x44e7c2[_0x673b('0x2f')]=_[_0x673b('0x30')](_0x430fb2[_0x673b('0x2f')]);_0x44e7c2['filters']=_[_0x673b('0x31')](_0x44e7c2[_0x673b('0x32')],_0x44e7c2['query']);_0x4254cc[_0x673b('0x33')]=_[_0x673b('0x31')](_0x44e7c2['model'],qs[_0x673b('0x34')](_0x430fb2[_0x673b('0x2f')][_0x673b('0x34')]));_0x4254cc[_0x673b('0x33')]=_0x4254cc[_0x673b('0x33')][_0x673b('0x35')]?_0x4254cc[_0x673b('0x33')]:_0x44e7c2[_0x673b('0x32')];if(!_0x430fb2[_0x673b('0x2f')][_0x673b('0x36')](_0x673b('0x37'))){_0x4254cc['limit']=qs['limit'](_0x430fb2['query']['limit']);_0x4254cc[_0x673b('0x1e')]=qs['offset'](_0x430fb2[_0x673b('0x2f')]['offset']);}_0x4254cc[_0x673b('0x38')]=qs[_0x673b('0x39')](_0x430fb2['query'][_0x673b('0x39')]);_0x4254cc[_0x673b('0x3a')]=qs[_0x673b('0x3b')](_[_0x673b('0x3c')](_0x430fb2[_0x673b('0x2f')],_0x44e7c2[_0x673b('0x3b')]),_0x5bc1a8);if(_0x430fb2[_0x673b('0x2f')]['filter']){_0x4254cc['where']=_[_0x673b('0x3d')](_0x4254cc[_0x673b('0x3a')],{'$or':_['map'](_0x5bc1a8,function(_0x2c8359){if(_0x2c8359['type']!=='VIRTUAL'){var _0x307c3e={};_0x307c3e[_0x2c8359[_0x673b('0x28')]]={'$like':'%'+_0x430fb2[_0x673b('0x2f')][_0x673b('0x3e')]+'%'};return _0x307c3e;}})});}_0x4254cc=_[_0x673b('0x3d')]({},_0x4254cc,_0x430fb2['options']);var _0x2352b6={'where':_0x4254cc[_0x673b('0x3a')]};return db['Pause'][_0x673b('0x1d')](_0x2352b6)[_0x673b('0x23')](function(_0x9955dd){_0x154dd6[_0x673b('0x1d')]=_0x9955dd;if(_0x430fb2[_0x673b('0x2f')][_0x673b('0x3f')]){_0x4254cc[_0x673b('0x40')]=[{'all':!![]}];}return db['Pause'][_0x673b('0x41')](_0x4254cc);})[_0x673b('0x23')](function(_0x3e1db0){_0x154dd6[_0x673b('0x42')]=_0x3e1db0;return _0x154dd6;})['then'](respondWithFilteredResult(_0x245b32,_0x4254cc))[_0x673b('0x43')](handleError(_0x245b32,null));};exports[_0x673b('0x44')]=function(_0x2ddea8,_0x5b101b){var _0x1a1e46={'raw':!![],'where':{'id':_0x2ddea8[_0x673b('0x45')]['id']}},_0x262a61={};_0x262a61['model']=_[_0x673b('0x30')](db[_0x673b('0x2c')][_0x673b('0x46')]);_0x262a61[_0x673b('0x2f')]=_[_0x673b('0x30')](_0x2ddea8[_0x673b('0x2f')]);_0x262a61['filters']=_[_0x673b('0x31')](_0x262a61['model'],_0x262a61[_0x673b('0x2f')]);_0x1a1e46['attributes']=_[_0x673b('0x31')](_0x262a61[_0x673b('0x32')],qs['fields'](_0x2ddea8[_0x673b('0x2f')][_0x673b('0x34')]));_0x1a1e46[_0x673b('0x33')]=_0x1a1e46[_0x673b('0x33')][_0x673b('0x35')]?_0x1a1e46[_0x673b('0x33')]:_0x262a61['model'];if(_0x2ddea8[_0x673b('0x2f')][_0x673b('0x3f')]){_0x1a1e46[_0x673b('0x40')]=[{'all':!![]}];}_0x1a1e46=_['merge']({},_0x1a1e46,_0x2ddea8[_0x673b('0x47')]);return db[_0x673b('0x2c')]['find'](_0x1a1e46)['then'](handleEntityNotFound(_0x5b101b,null))[_0x673b('0x23')](respondWithResult(_0x5b101b,null))['catch'](handleError(_0x5b101b,null));};exports[_0x673b('0x48')]=function(_0x461737,_0x335ce2){return db[_0x673b('0x2c')]['create'](_0x461737[_0x673b('0x49')],{})['then'](function(_0x5b76f0){var _0x5ca2a2=_0x461737[_0x673b('0x4a')][_0x673b('0x4b')]({'plain':!![]});if(!_0x5ca2a2)throw new Error(_0x673b('0x4c'));if(_0x5ca2a2[_0x673b('0x4d')]==='user'){var _0x2cfee5=_0x5b76f0[_0x673b('0x4b')]({'plain':!![]});var _0x9ef32d=_0x673b('0x4e');return db[_0x673b('0x4f')][_0x673b('0x50')]({'where':{'name':_0x9ef32d,'userProfileId':_0x5ca2a2[_0x673b('0x51')]},'raw':!![]})['then'](function(_0x2f4844){if(_0x2f4844&&_0x2f4844[_0x673b('0x52')]===0x0){return db[_0x673b('0x24')][_0x673b('0x48')]({'name':_0x2cfee5[_0x673b('0x28')],'resourceId':_0x2cfee5['id'],'type':_0x2f4844['name'],'sectionId':_0x2f4844['id']},{})[_0x673b('0x23')](function(){return _0x5b76f0;});}else{return _0x5b76f0;}})[_0x673b('0x43')](function(_0x3e0617){logger[_0x673b('0x26')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x3e0617);throw _0x3e0617;});}return _0x5b76f0;})[_0x673b('0x23')](respondWithResult(_0x335ce2,0xc9))[_0x673b('0x43')](handleError(_0x335ce2,null));};exports['update']=function(_0x28b52a,_0x3cfd28){if(_0x28b52a['body']['id']){delete _0x28b52a[_0x673b('0x49')]['id'];}return db[_0x673b('0x2c')][_0x673b('0x50')]({'where':{'id':_0x28b52a[_0x673b('0x45')]['id']}})[_0x673b('0x23')](handleEntityNotFound(_0x3cfd28,null))[_0x673b('0x23')](saveUpdates(_0x28b52a['body'],null))[_0x673b('0x23')](respondWithResult(_0x3cfd28,null))['catch'](handleError(_0x3cfd28,null));};exports[_0x673b('0x53')]=function(_0x2a11e5,_0xe1f3f){return db[_0x673b('0x2c')]['find']({'where':{'id':_0x2a11e5[_0x673b('0x45')]['id']}})[_0x673b('0x23')](handleEntityNotFound(_0xe1f3f,null))['then'](removeEntity(_0xe1f3f,null))[_0x673b('0x43')](handleError(_0xe1f3f,null));};