1ecb7af5f79771ef3ae70d7776416cd06c497e89
[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 _0x433b=['name','index','Pause','rawAttributes','type','key','map','query','keys','intersection','model','fields','attributes','length','hasOwnProperty','nolimit','order','sort','filters','pick','filter','where','VIRTUAL','merge','includeAll','include','findAll','rows','catch','show','params','options','find','create','body','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','squel','crypto','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','end','status','json','offset','undefined','limit','count','apply','update','destroy','Pauses','UserProfileResource','then','error','stack'];(function(_0x4cd31f,_0x326b8c){var _0x1fe932=function(_0x15f51a){while(--_0x15f51a){_0x4cd31f['push'](_0x4cd31f['shift']());}};_0x1fe932(++_0x326b8c);}(_0x433b,0x16c));var _0xb433=function(_0x1bf8cc,_0x118778){_0x1bf8cc=_0x1bf8cc-0x0;var _0x322d20=_0x433b[_0x1bf8cc];return _0x322d20;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xb433('0x0'));var zipdir=require(_0xb433('0x1'));var jsonpatch=require(_0xb433('0x2'));var rp=require(_0xb433('0x3'));var moment=require(_0xb433('0x4'));var BPromise=require(_0xb433('0x5'));var Mustache=require(_0xb433('0x6'));var util=require(_0xb433('0x7'));var path=require('path');var sox=require(_0xb433('0x8'));var csv=require(_0xb433('0x9'));var ejs=require(_0xb433('0xa'));var fs=require('fs');var fs_extra=require(_0xb433('0xb'));var _=require('lodash');var squel=require(_0xb433('0xc'));var crypto=require(_0xb433('0xd'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0xb433('0x9'));var querystring=require(_0xb433('0xe'));var Papa=require(_0xb433('0xf'));var Redis=require(_0xb433('0x10'));var authService=require(_0xb433('0x11'));var qs=require(_0xb433('0x12'));var as=require(_0xb433('0x13'));var hardwareService=require(_0xb433('0x14'));var logger=require('../../config/logger')(_0xb433('0x15'));var utils=require(_0xb433('0x16'));var config=require(_0xb433('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0xb433('0x18'))['db'];function respondWithStatusCode(_0x20651e,_0x2a3c8f){_0x2a3c8f=_0x2a3c8f||0xcc;return function(_0x23d43e){if(_0x23d43e){return _0x20651e[_0xb433('0x19')](_0x2a3c8f);}return _0x20651e['status'](_0x2a3c8f)[_0xb433('0x1a')]();};}function respondWithResult(_0x10b905,_0x7ab24a){_0x7ab24a=_0x7ab24a||0xc8;return function(_0x398b94){if(_0x398b94){return _0x10b905[_0xb433('0x1b')](_0x7ab24a)[_0xb433('0x1c')](_0x398b94);}};}function respondWithFilteredResult(_0x10966a,_0x109a26){return function(_0x504b87){if(_0x504b87){var _0x547be3=typeof _0x109a26[_0xb433('0x1d')]===_0xb433('0x1e')&&typeof _0x109a26[_0xb433('0x1f')]==='undefined';var _0xf78953=_0x504b87[_0xb433('0x20')];var _0x42fe11=_0x547be3?0x0:_0x109a26[_0xb433('0x1d')];var _0x47515a=_0x547be3?_0x504b87['count']:_0x109a26[_0xb433('0x1d')]+_0x109a26['limit'];var _0x5bb0e5;if(_0x47515a>=_0xf78953){_0x47515a=_0xf78953;_0x5bb0e5=0xc8;}else{_0x5bb0e5=0xce;}_0x10966a[_0xb433('0x1b')](_0x5bb0e5);return _0x10966a['set']('Content-Range',_0x42fe11+'-'+_0x47515a+'/'+_0xf78953)[_0xb433('0x1c')](_0x504b87);}return null;};}function patchUpdates(_0x2669ec){return function(_0x516c48){try{jsonpatch[_0xb433('0x21')](_0x516c48,_0x2669ec,!![]);}catch(_0x4285f6){return BPromise['reject'](_0x4285f6);}return _0x516c48['save']();};}function saveUpdates(_0x347171,_0x29b9cb){return function(_0x45cfe0){if(_0x45cfe0){return _0x45cfe0[_0xb433('0x22')](_0x347171)['then'](function(_0x24f9cb){return _0x24f9cb;});}return null;};}function removeEntity(_0x314fc6,_0x16d67a){return function(_0x418902){if(_0x418902){return _0x418902[_0xb433('0x23')]()['then'](function(){var _0x23d70c=_0x418902['get']({'plain':!![]});var _0xb80b86=_0xb433('0x24');return db[_0xb433('0x25')]['destroy']({'where':{'type':_0xb80b86,'resourceId':_0x23d70c['id']}})['then'](function(){return _0x418902;});})[_0xb433('0x26')](function(){_0x314fc6[_0xb433('0x1b')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4365ee,_0x28fdda){return function(_0x5ddc07){if(!_0x5ddc07){_0x4365ee[_0xb433('0x19')](0x194);}return _0x5ddc07;};}function handleError(_0x506179,_0x12022f){_0x12022f=_0x12022f||0x1f4;return function(_0x4cb3a4){logger[_0xb433('0x27')](_0x4cb3a4[_0xb433('0x28')]);if(_0x4cb3a4[_0xb433('0x29')]){delete _0x4cb3a4[_0xb433('0x29')];}_0x506179[_0xb433('0x1b')](_0x12022f)['send'](_0x4cb3a4);};}exports[_0xb433('0x2a')]=function(_0x1417b5,_0x1fc7db){var _0x519153={},_0x377425={},_0x445ac1={'count':0x0,'rows':[]};var _0x1ed1ca=_['map'](db[_0xb433('0x2b')][_0xb433('0x2c')],function(_0xa0eed6){return{'name':_0xa0eed6['fieldName'],'type':_0xa0eed6[_0xb433('0x2d')][_0xb433('0x2e')]};});_0x377425['model']=_[_0xb433('0x2f')](_0x1ed1ca,_0xb433('0x29'));_0x377425[_0xb433('0x30')]=_[_0xb433('0x31')](_0x1417b5['query']);_0x377425['filters']=_[_0xb433('0x32')](_0x377425[_0xb433('0x33')],_0x377425[_0xb433('0x30')]);_0x519153['attributes']=_[_0xb433('0x32')](_0x377425[_0xb433('0x33')],qs[_0xb433('0x34')](_0x1417b5[_0xb433('0x30')][_0xb433('0x34')]));_0x519153[_0xb433('0x35')]=_0x519153[_0xb433('0x35')][_0xb433('0x36')]?_0x519153['attributes']:_0x377425[_0xb433('0x33')];if(!_0x1417b5['query'][_0xb433('0x37')](_0xb433('0x38'))){_0x519153['limit']=qs['limit'](_0x1417b5[_0xb433('0x30')][_0xb433('0x1f')]);_0x519153[_0xb433('0x1d')]=qs[_0xb433('0x1d')](_0x1417b5[_0xb433('0x30')][_0xb433('0x1d')]);}_0x519153[_0xb433('0x39')]=qs[_0xb433('0x3a')](_0x1417b5[_0xb433('0x30')][_0xb433('0x3a')]);_0x519153['where']=qs[_0xb433('0x3b')](_[_0xb433('0x3c')](_0x1417b5[_0xb433('0x30')],_0x377425[_0xb433('0x3b')]),_0x1ed1ca);if(_0x1417b5['query'][_0xb433('0x3d')]){_0x519153[_0xb433('0x3e')]=_['merge'](_0x519153['where'],{'$or':_[_0xb433('0x2f')](_0x1ed1ca,function(_0x2e00a3){if(_0x2e00a3[_0xb433('0x2d')]!==_0xb433('0x3f')){var _0x43f78d={};_0x43f78d[_0x2e00a3['name']]={'$like':'%'+_0x1417b5[_0xb433('0x30')]['filter']+'%'};return _0x43f78d;}})});}_0x519153=_[_0xb433('0x40')]({},_0x519153,_0x1417b5['options']);var _0x598799={'where':_0x519153[_0xb433('0x3e')]};return db[_0xb433('0x2b')][_0xb433('0x20')](_0x598799)[_0xb433('0x26')](function(_0x3ac827){_0x445ac1['count']=_0x3ac827;if(_0x1417b5['query'][_0xb433('0x41')]){_0x519153[_0xb433('0x42')]=[{'all':!![]}];}return db['Pause'][_0xb433('0x43')](_0x519153);})['then'](function(_0x4f3e42){_0x445ac1[_0xb433('0x44')]=_0x4f3e42;return _0x445ac1;})[_0xb433('0x26')](respondWithFilteredResult(_0x1fc7db,_0x519153))[_0xb433('0x45')](handleError(_0x1fc7db,null));};exports[_0xb433('0x46')]=function(_0x3e26b2,_0x36dc8c){var _0x336348={'raw':!![],'where':{'id':_0x3e26b2[_0xb433('0x47')]['id']}},_0x4f8758={};_0x4f8758['model']=_[_0xb433('0x31')](db[_0xb433('0x2b')][_0xb433('0x2c')]);_0x4f8758['query']=_[_0xb433('0x31')](_0x3e26b2[_0xb433('0x30')]);_0x4f8758['filters']=_[_0xb433('0x32')](_0x4f8758[_0xb433('0x33')],_0x4f8758['query']);_0x336348[_0xb433('0x35')]=_[_0xb433('0x32')](_0x4f8758[_0xb433('0x33')],qs[_0xb433('0x34')](_0x3e26b2[_0xb433('0x30')][_0xb433('0x34')]));_0x336348[_0xb433('0x35')]=_0x336348[_0xb433('0x35')][_0xb433('0x36')]?_0x336348[_0xb433('0x35')]:_0x4f8758[_0xb433('0x33')];if(_0x3e26b2[_0xb433('0x30')][_0xb433('0x41')]){_0x336348[_0xb433('0x42')]=[{'all':!![]}];}_0x336348=_[_0xb433('0x40')]({},_0x336348,_0x3e26b2[_0xb433('0x48')]);return db[_0xb433('0x2b')][_0xb433('0x49')](_0x336348)[_0xb433('0x26')](handleEntityNotFound(_0x36dc8c,null))[_0xb433('0x26')](respondWithResult(_0x36dc8c,null))[_0xb433('0x45')](handleError(_0x36dc8c,null));};exports[_0xb433('0x4a')]=function(_0xed61a6,_0x178846){return db[_0xb433('0x2b')]['create'](_0xed61a6[_0xb433('0x4b')],{})['then'](function(_0x589c08){var _0x5958f1=_0xed61a6['user'][_0xb433('0x4c')]({'plain':!![]});if(!_0x5958f1)throw new Error(_0xb433('0x4d'));if(_0x5958f1[_0xb433('0x4e')]==='user'){var _0x50214f=_0x589c08[_0xb433('0x4c')]({'plain':!![]});var _0x4a5a53='Pauses';return db[_0xb433('0x4f')][_0xb433('0x49')]({'where':{'name':_0x4a5a53,'userProfileId':_0x5958f1[_0xb433('0x50')]},'raw':!![]})[_0xb433('0x26')](function(_0x3440aa){if(_0x3440aa&&_0x3440aa['autoAssociation']===0x0){return db[_0xb433('0x25')][_0xb433('0x4a')]({'name':_0x50214f[_0xb433('0x29')],'resourceId':_0x50214f['id'],'type':_0x3440aa[_0xb433('0x29')],'sectionId':_0x3440aa['id']},{})[_0xb433('0x26')](function(){return _0x589c08;});}else{return _0x589c08;}})[_0xb433('0x45')](function(_0x7896f){logger[_0xb433('0x27')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x7896f);throw _0x7896f;});}return _0x589c08;})[_0xb433('0x26')](respondWithResult(_0x178846,0xc9))[_0xb433('0x45')](handleError(_0x178846,null));};exports['update']=function(_0xa6b585,_0x5385f9){if(_0xa6b585['body']['id']){delete _0xa6b585[_0xb433('0x4b')]['id'];}return db[_0xb433('0x2b')][_0xb433('0x49')]({'where':{'id':_0xa6b585[_0xb433('0x47')]['id']}})['then'](handleEntityNotFound(_0x5385f9,null))[_0xb433('0x26')](saveUpdates(_0xa6b585[_0xb433('0x4b')],null))[_0xb433('0x26')](respondWithResult(_0x5385f9,null))[_0xb433('0x45')](handleError(_0x5385f9,null));};exports[_0xb433('0x23')]=function(_0x4c9445,_0x2b3926){return db['Pause'][_0xb433('0x49')]({'where':{'id':_0x4c9445[_0xb433('0x47')]['id']}})[_0xb433('0x26')](handleEntityNotFound(_0x2b3926,null))[_0xb433('0x26')](removeEntity(_0x2b3926,null))[_0xb433('0x45')](handleError(_0x2b3926,null));};