Built motion from commit 85328c08.|2.5.50
[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 _0xc87d=['mustache','util','path','sox','to-csv','fs-extra','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','undefined','limit','count','offset','set','Content-Range','apply','update','then','get','UserProfileResource','error','stack','name','send','index','fieldName','type','key','model','map','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','filter','where','merge','VIRTUAL','options','Pause','include','findAll','catch','show','keys','rawAttributes','includeAll','find','create','body','user','role','UserProfileSection','userProfileId','destroy','params','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird'];(function(_0x1fd9e7,_0x24cdbe){var _0x1781f2=function(_0x2bd0a3){while(--_0x2bd0a3){_0x1fd9e7['push'](_0x1fd9e7['shift']());}};_0x1781f2(++_0x24cdbe);}(_0xc87d,0x198));var _0xdc87=function(_0x5da1f5,_0x5d5afe){_0x5da1f5=_0x5da1f5-0x0;var _0x51e6e6=_0xc87d[_0x5da1f5];return _0x51e6e6;};'use strict';var emlformat=require(_0xdc87('0x0'));var rimraf=require(_0xdc87('0x1'));var zipdir=require(_0xdc87('0x2'));var jsonpatch=require(_0xdc87('0x3'));var rp=require(_0xdc87('0x4'));var moment=require(_0xdc87('0x5'));var BPromise=require(_0xdc87('0x6'));var Mustache=require(_0xdc87('0x7'));var util=require(_0xdc87('0x8'));var path=require(_0xdc87('0x9'));var sox=require(_0xdc87('0xa'));var csv=require(_0xdc87('0xb'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xdc87('0xc'));var _=require('lodash');var squel=require(_0xdc87('0xd'));var crypto=require('crypto');var jsforce=require(_0xdc87('0xe'));var deskjs=require(_0xdc87('0xf'));var toCsv=require(_0xdc87('0xb'));var querystring=require(_0xdc87('0x10'));var Papa=require(_0xdc87('0x11'));var Redis=require(_0xdc87('0x12'));var authService=require(_0xdc87('0x13'));var qs=require(_0xdc87('0x14'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xdc87('0x15'));var logger=require(_0xdc87('0x16'))(_0xdc87('0x17'));var utils=require(_0xdc87('0x18'));var config=require(_0xdc87('0x19'));var licenseUtil=require('../../config/license/util');var db=require(_0xdc87('0x1a'))['db'];function respondWithStatusCode(_0xe3e5ab,_0x424d6c){_0x424d6c=_0x424d6c||0xcc;return function(_0x5d69fb){if(_0x5d69fb){return _0xe3e5ab[_0xdc87('0x1b')](_0x424d6c);}return _0xe3e5ab[_0xdc87('0x1c')](_0x424d6c)[_0xdc87('0x1d')]();};}function respondWithResult(_0x365988,_0x2efa2c){_0x2efa2c=_0x2efa2c||0xc8;return function(_0x18224a){if(_0x18224a){return _0x365988[_0xdc87('0x1c')](_0x2efa2c)[_0xdc87('0x1e')](_0x18224a);}};}function respondWithFilteredResult(_0x3c9258,_0x2d2f12){return function(_0x126c1e){if(_0x126c1e){var _0x1c7afe=typeof _0x2d2f12['offset']===_0xdc87('0x1f')&&typeof _0x2d2f12[_0xdc87('0x20')]==='undefined';var _0x30ebdb=_0x126c1e['count'];var _0x3e7375=_0x1c7afe?0x0:_0x2d2f12['offset'];var _0x4e7a8c=_0x1c7afe?_0x126c1e[_0xdc87('0x21')]:_0x2d2f12[_0xdc87('0x22')]+_0x2d2f12['limit'];var _0x5471db;if(_0x4e7a8c>=_0x30ebdb){_0x4e7a8c=_0x30ebdb;_0x5471db=0xc8;}else{_0x5471db=0xce;}_0x3c9258['status'](_0x5471db);return _0x3c9258[_0xdc87('0x23')](_0xdc87('0x24'),_0x3e7375+'-'+_0x4e7a8c+'/'+_0x30ebdb)[_0xdc87('0x1e')](_0x126c1e);}return null;};}function patchUpdates(_0x513c03){return function(_0x3be9a2){try{jsonpatch[_0xdc87('0x25')](_0x3be9a2,_0x513c03,!![]);}catch(_0x53c1b8){return BPromise['reject'](_0x53c1b8);}return _0x3be9a2['save']();};}function saveUpdates(_0x312fd8,_0x5525e9){return function(_0x329963){if(_0x329963){return _0x329963[_0xdc87('0x26')](_0x312fd8)[_0xdc87('0x27')](function(_0x318fca){return _0x318fca;});}return null;};}function removeEntity(_0x14a53c,_0xfd0dea){return function(_0x1f9312){if(_0x1f9312){return _0x1f9312['destroy']()[_0xdc87('0x27')](function(){var _0x403cfa=_0x1f9312[_0xdc87('0x28')]({'plain':!![]});var _0x365590='Pauses';return db[_0xdc87('0x29')]['destroy']({'where':{'type':_0x365590,'resourceId':_0x403cfa['id']}})[_0xdc87('0x27')](function(){return _0x1f9312;});})[_0xdc87('0x27')](function(){_0x14a53c[_0xdc87('0x1c')](0xcc)[_0xdc87('0x1d')]();});}};}function handleEntityNotFound(_0x49eb67,_0x366e60){return function(_0x36f1ea){if(!_0x36f1ea){_0x49eb67[_0xdc87('0x1b')](0x194);}return _0x36f1ea;};}function handleError(_0x26a1b3,_0x16b86e){_0x16b86e=_0x16b86e||0x1f4;return function(_0x56d4f6){logger[_0xdc87('0x2a')](_0x56d4f6[_0xdc87('0x2b')]);if(_0x56d4f6[_0xdc87('0x2c')]){delete _0x56d4f6[_0xdc87('0x2c')];}_0x26a1b3[_0xdc87('0x1c')](_0x16b86e)[_0xdc87('0x2d')](_0x56d4f6);};}exports[_0xdc87('0x2e')]=function(_0x28cc38,_0x455402){var _0x171284={},_0x388414={},_0x2d0109={'count':0x0,'rows':[]};var _0x11ad2e=_['map'](db['Pause']['rawAttributes'],function(_0x227b97){return{'name':_0x227b97[_0xdc87('0x2f')],'type':_0x227b97[_0xdc87('0x30')][_0xdc87('0x31')]};});_0x388414[_0xdc87('0x32')]=_[_0xdc87('0x33')](_0x11ad2e,'name');_0x388414[_0xdc87('0x34')]=_['keys'](_0x28cc38[_0xdc87('0x34')]);_0x388414[_0xdc87('0x35')]=_[_0xdc87('0x36')](_0x388414['model'],_0x388414[_0xdc87('0x34')]);_0x171284[_0xdc87('0x37')]=_[_0xdc87('0x36')](_0x388414[_0xdc87('0x32')],qs['fields'](_0x28cc38['query'][_0xdc87('0x38')]));_0x171284['attributes']=_0x171284[_0xdc87('0x37')][_0xdc87('0x39')]?_0x171284[_0xdc87('0x37')]:_0x388414[_0xdc87('0x32')];if(!_0x28cc38['query'][_0xdc87('0x3a')](_0xdc87('0x3b'))){_0x171284[_0xdc87('0x20')]=qs['limit'](_0x28cc38[_0xdc87('0x34')][_0xdc87('0x20')]);_0x171284[_0xdc87('0x22')]=qs[_0xdc87('0x22')](_0x28cc38['query'][_0xdc87('0x22')]);}_0x171284['order']=qs['sort'](_0x28cc38[_0xdc87('0x34')][_0xdc87('0x3c')]);_0x171284['where']=qs[_0xdc87('0x35')](_['pick'](_0x28cc38[_0xdc87('0x34')],_0x388414[_0xdc87('0x35')]),_0x11ad2e);if(_0x28cc38['query'][_0xdc87('0x3d')]){_0x171284[_0xdc87('0x3e')]=_[_0xdc87('0x3f')](_0x171284[_0xdc87('0x3e')],{'$or':_['map'](_0x11ad2e,function(_0x6745a7){if(_0x6745a7[_0xdc87('0x30')]!==_0xdc87('0x40')){var _0x201d5b={};_0x201d5b[_0x6745a7[_0xdc87('0x2c')]]={'$like':'%'+_0x28cc38[_0xdc87('0x34')][_0xdc87('0x3d')]+'%'};return _0x201d5b;}})});}_0x171284=_[_0xdc87('0x3f')]({},_0x171284,_0x28cc38[_0xdc87('0x41')]);var _0x41b59d={'where':_0x171284['where']};return db[_0xdc87('0x42')]['count'](_0x41b59d)['then'](function(_0x3f33e3){_0x2d0109[_0xdc87('0x21')]=_0x3f33e3;if(_0x28cc38['query']['includeAll']){_0x171284[_0xdc87('0x43')]=[{'all':!![]}];}return db[_0xdc87('0x42')][_0xdc87('0x44')](_0x171284);})[_0xdc87('0x27')](function(_0x2c733f){_0x2d0109['rows']=_0x2c733f;return _0x2d0109;})['then'](respondWithFilteredResult(_0x455402,_0x171284))[_0xdc87('0x45')](handleError(_0x455402,null));};exports[_0xdc87('0x46')]=function(_0x3b127b,_0x2930ce){var _0x32db11={'raw':!![],'where':{'id':_0x3b127b['params']['id']}},_0xa2a313={};_0xa2a313[_0xdc87('0x32')]=_[_0xdc87('0x47')](db[_0xdc87('0x42')][_0xdc87('0x48')]);_0xa2a313[_0xdc87('0x34')]=_[_0xdc87('0x47')](_0x3b127b[_0xdc87('0x34')]);_0xa2a313[_0xdc87('0x35')]=_['intersection'](_0xa2a313[_0xdc87('0x32')],_0xa2a313[_0xdc87('0x34')]);_0x32db11[_0xdc87('0x37')]=_[_0xdc87('0x36')](_0xa2a313['model'],qs[_0xdc87('0x38')](_0x3b127b[_0xdc87('0x34')]['fields']));_0x32db11['attributes']=_0x32db11[_0xdc87('0x37')][_0xdc87('0x39')]?_0x32db11['attributes']:_0xa2a313[_0xdc87('0x32')];if(_0x3b127b[_0xdc87('0x34')][_0xdc87('0x49')]){_0x32db11[_0xdc87('0x43')]=[{'all':!![]}];}_0x32db11=_['merge']({},_0x32db11,_0x3b127b['options']);return db[_0xdc87('0x42')][_0xdc87('0x4a')](_0x32db11)['then'](handleEntityNotFound(_0x2930ce,null))[_0xdc87('0x27')](respondWithResult(_0x2930ce,null))['catch'](handleError(_0x2930ce,null));};exports['create']=function(_0x486d99,_0x46ad8d){return db['Pause'][_0xdc87('0x4b')](_0x486d99[_0xdc87('0x4c')],{})[_0xdc87('0x27')](function(_0x34cfa4){var _0x87ce93=_0x486d99[_0xdc87('0x4d')][_0xdc87('0x28')]({'plain':!![]});if(!_0x87ce93)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x87ce93[_0xdc87('0x4e')]===_0xdc87('0x4d')){var _0x2398cd=_0x34cfa4['get']({'plain':!![]});var _0xec843b='Pauses';return db[_0xdc87('0x4f')][_0xdc87('0x4a')]({'where':{'name':_0xec843b,'userProfileId':_0x87ce93[_0xdc87('0x50')]},'raw':!![]})[_0xdc87('0x27')](function(_0x574aa8){if(_0x574aa8&&_0x574aa8['autoAssociation']===0x0){return db[_0xdc87('0x29')][_0xdc87('0x4b')]({'name':_0x2398cd['name'],'resourceId':_0x2398cd['id'],'type':_0x574aa8[_0xdc87('0x2c')],'sectionId':_0x574aa8['id']},{})[_0xdc87('0x27')](function(){return _0x34cfa4;});}else{return _0x34cfa4;}})[_0xdc87('0x45')](function(_0x3dd212){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x3dd212);throw _0x3dd212;});}return _0x34cfa4;})[_0xdc87('0x27')](respondWithResult(_0x46ad8d,0xc9))[_0xdc87('0x45')](handleError(_0x46ad8d,null));};exports[_0xdc87('0x26')]=function(_0x2101f9,_0x45c83e){if(_0x2101f9[_0xdc87('0x4c')]['id']){delete _0x2101f9[_0xdc87('0x4c')]['id'];}return db[_0xdc87('0x42')][_0xdc87('0x4a')]({'where':{'id':_0x2101f9['params']['id']}})[_0xdc87('0x27')](handleEntityNotFound(_0x45c83e,null))['then'](saveUpdates(_0x2101f9[_0xdc87('0x4c')],null))[_0xdc87('0x27')](respondWithResult(_0x45c83e,null))[_0xdc87('0x45')](handleError(_0x45c83e,null));};exports[_0xdc87('0x51')]=function(_0x3bfa74,_0x205222){return db['Pause'][_0xdc87('0x4a')]({'where':{'id':_0x3bfa74[_0xdc87('0x52')]['id']}})[_0xdc87('0x27')](handleEntityNotFound(_0x205222,null))[_0xdc87('0x27')](removeEntity(_0x205222,null))[_0xdc87('0x45')](handleError(_0x205222,null));};