aa8f4cb9804ba212cfd6d3214d609628771a1788
[motion2.git] / server / api / voiceMail / voiceMail.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 _0x878f=['reject','save','update','then','destroy','get','Voicemails','UserProfileResource','end','name','send','map','VoiceMail','rawAttributes','fieldName','type','model','query','keys','filters','intersection','attributes','fields','length','nolimit','order','sort','pick','filter','where','merge','VIRTUAL','options','findAll','rows','catch','show','params','include','find','create','body','user','role','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','getMessages','VoiceMailMessage','hasOwnProperty','findAndCountAll','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','lodash','squel','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','offset','undefined','limit','count','set','json'];(function(_0x59688d,_0x4b1081){var _0x2a86a0=function(_0x4dbf82){while(--_0x4dbf82){_0x59688d['push'](_0x59688d['shift']());}};_0x2a86a0(++_0x4b1081);}(_0x878f,0x173));var _0xf878=function(_0x5273a0,_0x4e608e){_0x5273a0=_0x5273a0-0x0;var _0x4fc4b6=_0x878f[_0x5273a0];return _0x4fc4b6;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xf878('0x0'));var zipdir=require(_0xf878('0x1'));var jsonpatch=require(_0xf878('0x2'));var rp=require(_0xf878('0x3'));var moment=require(_0xf878('0x4'));var BPromise=require(_0xf878('0x5'));var Mustache=require(_0xf878('0x6'));var util=require(_0xf878('0x7'));var path=require(_0xf878('0x8'));var sox=require(_0xf878('0x9'));var csv=require(_0xf878('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xf878('0xb'));var squel=require(_0xf878('0xc'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0xf878('0xa'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0xf878('0xd'));var authService=require(_0xf878('0xe'));var qs=require(_0xf878('0xf'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xf878('0x10'));var logger=require(_0xf878('0x11'))('api');var utils=require(_0xf878('0x12'));var config=require('../../config/environment');var licenseUtil=require(_0xf878('0x13'));var db=require(_0xf878('0x14'))['db'];function respondWithStatusCode(_0x339c9c,_0x596fb5){_0x596fb5=_0x596fb5||0xcc;return function(_0x1ce004){if(_0x1ce004){return _0x339c9c[_0xf878('0x15')](_0x596fb5);}return _0x339c9c[_0xf878('0x16')](_0x596fb5)['end']();};}function respondWithResult(_0xe2c2de,_0x3902f7){_0x3902f7=_0x3902f7||0xc8;return function(_0x119e9e){if(_0x119e9e){return _0xe2c2de['status'](_0x3902f7)['json'](_0x119e9e);}};}function respondWithFilteredResult(_0x4c0948,_0x35ff2d){return function(_0x31d888){if(_0x31d888){var _0x6dbeca=typeof _0x35ff2d[_0xf878('0x17')]===_0xf878('0x18')&&typeof _0x35ff2d[_0xf878('0x19')]===_0xf878('0x18');var _0x3c5dee=_0x31d888[_0xf878('0x1a')];var _0x3b2e1b=_0x6dbeca?0x0:_0x35ff2d['offset'];var _0x2b2b54=_0x6dbeca?_0x31d888[_0xf878('0x1a')]:_0x35ff2d[_0xf878('0x17')]+_0x35ff2d[_0xf878('0x19')];var _0x3714f6;if(_0x2b2b54>=_0x3c5dee){_0x2b2b54=_0x3c5dee;_0x3714f6=0xc8;}else{_0x3714f6=0xce;}_0x4c0948[_0xf878('0x16')](_0x3714f6);return _0x4c0948[_0xf878('0x1b')]('Content-Range',_0x3b2e1b+'-'+_0x2b2b54+'/'+_0x3c5dee)[_0xf878('0x1c')](_0x31d888);}return null;};}function patchUpdates(_0x140866){return function(_0x250f85){try{jsonpatch['apply'](_0x250f85,_0x140866,!![]);}catch(_0x432e5d){return BPromise[_0xf878('0x1d')](_0x432e5d);}return _0x250f85[_0xf878('0x1e')]();};}function saveUpdates(_0x392822,_0x22d884){return function(_0x442450){if(_0x442450){return _0x442450[_0xf878('0x1f')](_0x392822)[_0xf878('0x20')](function(_0x212436){return _0x212436;});}return null;};}function removeEntity(_0x1a6506,_0x45e61f){return function(_0x566995){if(_0x566995){return _0x566995[_0xf878('0x21')]()['then'](function(){var _0xa3d3d3=_0x566995[_0xf878('0x22')]({'plain':!![]});var _0x35b3b4=_0xf878('0x23');return db[_0xf878('0x24')]['destroy']({'where':{'type':_0x35b3b4,'resourceId':_0xa3d3d3['id']}})['then'](function(){return _0x566995;});})['then'](function(){_0x1a6506[_0xf878('0x16')](0xcc)[_0xf878('0x25')]();});}};}function handleEntityNotFound(_0x38fa87,_0x5af87f){return function(_0xfa3e11){if(!_0xfa3e11){_0x38fa87[_0xf878('0x15')](0x194);}return _0xfa3e11;};}function handleError(_0x3e848d,_0xd50680){_0xd50680=_0xd50680||0x1f4;return function(_0x41dd55){logger['error'](_0x41dd55['stack']);if(_0x41dd55[_0xf878('0x26')]){delete _0x41dd55[_0xf878('0x26')];}_0x3e848d['status'](_0xd50680)[_0xf878('0x27')](_0x41dd55);};}exports['index']=function(_0x969ee3,_0x51afaf){var _0x2c61c1={},_0x49e66a={},_0x2630fb={'count':0x0,'rows':[]};var _0x48b151=_[_0xf878('0x28')](db[_0xf878('0x29')][_0xf878('0x2a')],function(_0x1f5331){return{'name':_0x1f5331[_0xf878('0x2b')],'type':_0x1f5331[_0xf878('0x2c')]['key']};});_0x49e66a[_0xf878('0x2d')]=_[_0xf878('0x28')](_0x48b151,_0xf878('0x26'));_0x49e66a[_0xf878('0x2e')]=_[_0xf878('0x2f')](_0x969ee3['query']);_0x49e66a[_0xf878('0x30')]=_[_0xf878('0x31')](_0x49e66a['model'],_0x49e66a[_0xf878('0x2e')]);_0x2c61c1[_0xf878('0x32')]=_[_0xf878('0x31')](_0x49e66a[_0xf878('0x2d')],qs[_0xf878('0x33')](_0x969ee3['query'][_0xf878('0x33')]));_0x2c61c1[_0xf878('0x32')]=_0x2c61c1[_0xf878('0x32')][_0xf878('0x34')]?_0x2c61c1['attributes']:_0x49e66a[_0xf878('0x2d')];if(!_0x969ee3['query']['hasOwnProperty'](_0xf878('0x35'))){_0x2c61c1[_0xf878('0x19')]=qs[_0xf878('0x19')](_0x969ee3[_0xf878('0x2e')][_0xf878('0x19')]);_0x2c61c1['offset']=qs[_0xf878('0x17')](_0x969ee3['query'][_0xf878('0x17')]);}_0x2c61c1[_0xf878('0x36')]=qs['sort'](_0x969ee3[_0xf878('0x2e')][_0xf878('0x37')]);_0x2c61c1['where']=qs[_0xf878('0x30')](_[_0xf878('0x38')](_0x969ee3['query'],_0x49e66a[_0xf878('0x30')]),_0x48b151);if(_0x969ee3[_0xf878('0x2e')][_0xf878('0x39')]){_0x2c61c1[_0xf878('0x3a')]=_[_0xf878('0x3b')](_0x2c61c1[_0xf878('0x3a')],{'$or':_[_0xf878('0x28')](_0x48b151,function(_0x54af54){if(_0x54af54[_0xf878('0x2c')]!==_0xf878('0x3c')){var _0x47ec1b={};_0x47ec1b[_0x54af54[_0xf878('0x26')]]={'$like':'%'+_0x969ee3['query']['filter']+'%'};return _0x47ec1b;}})});}_0x2c61c1=_[_0xf878('0x3b')]({},_0x2c61c1,_0x969ee3[_0xf878('0x3d')]);var _0x43b03e={'where':_0x2c61c1[_0xf878('0x3a')]};return db[_0xf878('0x29')]['count'](_0x43b03e)[_0xf878('0x20')](function(_0x4c4ae4){_0x2630fb[_0xf878('0x1a')]=_0x4c4ae4;if(_0x969ee3[_0xf878('0x2e')]['includeAll']){_0x2c61c1['include']=[{'all':!![]}];}return db[_0xf878('0x29')][_0xf878('0x3e')](_0x2c61c1);})[_0xf878('0x20')](function(_0x2f6ee5){_0x2630fb[_0xf878('0x3f')]=_0x2f6ee5;return _0x2630fb;})[_0xf878('0x20')](respondWithFilteredResult(_0x51afaf,_0x2c61c1))[_0xf878('0x40')](handleError(_0x51afaf,null));};exports[_0xf878('0x41')]=function(_0x3b1c67,_0x5444eb){var _0x1edaa9={'raw':!![],'where':{'id':_0x3b1c67[_0xf878('0x42')]['id']}},_0x21b4fb={};_0x21b4fb[_0xf878('0x2d')]=_[_0xf878('0x2f')](db[_0xf878('0x29')]['rawAttributes']);_0x21b4fb[_0xf878('0x2e')]=_[_0xf878('0x2f')](_0x3b1c67[_0xf878('0x2e')]);_0x21b4fb[_0xf878('0x30')]=_[_0xf878('0x31')](_0x21b4fb['model'],_0x21b4fb[_0xf878('0x2e')]);_0x1edaa9[_0xf878('0x32')]=_[_0xf878('0x31')](_0x21b4fb[_0xf878('0x2d')],qs['fields'](_0x3b1c67[_0xf878('0x2e')][_0xf878('0x33')]));_0x1edaa9[_0xf878('0x32')]=_0x1edaa9['attributes']['length']?_0x1edaa9[_0xf878('0x32')]:_0x21b4fb['model'];if(_0x3b1c67['query']['includeAll']){_0x1edaa9[_0xf878('0x43')]=[{'all':!![]}];}_0x1edaa9=_['merge']({},_0x1edaa9,_0x3b1c67[_0xf878('0x3d')]);return db[_0xf878('0x29')][_0xf878('0x44')](_0x1edaa9)[_0xf878('0x20')](handleEntityNotFound(_0x5444eb,null))[_0xf878('0x20')](respondWithResult(_0x5444eb,null))[_0xf878('0x40')](handleError(_0x5444eb,null));};exports[_0xf878('0x45')]=function(_0x526c89,_0xb0bf4c){return db[_0xf878('0x29')][_0xf878('0x45')](_0x526c89[_0xf878('0x46')],{})[_0xf878('0x20')](function(_0x47c8be){var _0x4a5b71=_0x526c89[_0xf878('0x47')][_0xf878('0x22')]({'plain':!![]});if(!_0x4a5b71)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x4a5b71[_0xf878('0x48')]==='user'){var _0x1ce6b9=_0x47c8be[_0xf878('0x22')]({'plain':!![]});var _0x379912=_0xf878('0x23');return db['UserProfileSection'][_0xf878('0x44')]({'where':{'name':_0x379912,'userProfileId':_0x4a5b71[_0xf878('0x49')]},'raw':!![]})[_0xf878('0x20')](function(_0x5a88d1){if(_0x5a88d1&&_0x5a88d1[_0xf878('0x4a')]===0x0){return db[_0xf878('0x24')][_0xf878('0x45')]({'name':_0x1ce6b9[_0xf878('0x26')],'resourceId':_0x1ce6b9['id'],'type':_0x5a88d1['name'],'sectionId':_0x5a88d1['id']},{})[_0xf878('0x20')](function(){return _0x47c8be;});}else{return _0x47c8be;}})[_0xf878('0x40')](function(_0x3f9fce){logger['error'](_0xf878('0x4b'),_0x3f9fce);throw _0x3f9fce;});}return _0x47c8be;})[_0xf878('0x20')](respondWithResult(_0xb0bf4c,0xc9))[_0xf878('0x40')](handleError(_0xb0bf4c,null));};exports[_0xf878('0x1f')]=function(_0x5118f4,_0x5a2666){if(_0x5118f4['body']['id']){delete _0x5118f4[_0xf878('0x46')]['id'];}return db['VoiceMail']['find']({'where':{'id':_0x5118f4['params']['id']}})[_0xf878('0x20')](handleEntityNotFound(_0x5a2666,null))[_0xf878('0x20')](saveUpdates(_0x5118f4['body'],null))[_0xf878('0x20')](respondWithResult(_0x5a2666,null))[_0xf878('0x40')](handleError(_0x5a2666,null));};exports[_0xf878('0x21')]=function(_0x4ce441,_0x5eab57){return db[_0xf878('0x29')]['find']({'where':{'id':_0x4ce441[_0xf878('0x42')]['id']}})[_0xf878('0x20')](handleEntityNotFound(_0x5eab57,null))[_0xf878('0x20')](removeEntity(_0x5eab57,null))[_0xf878('0x40')](handleError(_0x5eab57,null));};exports[_0xf878('0x4c')]=function(_0x344aa4,_0x57f635,_0x284132){return db[_0xf878('0x29')]['findOne']({'where':{'id':_0x344aa4[_0xf878('0x42')]['id']}})[_0xf878('0x20')](handleEntityNotFound(_0x57f635,null))[_0xf878('0x20')](function(_0x282985){var _0x263f26;var _0x36b000={},_0x339141={};_0x339141['model']=_[_0xf878('0x2f')](db[_0xf878('0x4d')][_0xf878('0x2a')]);_0x339141['query']=_[_0xf878('0x2f')](_0x344aa4['query']);_0x339141[_0xf878('0x30')]=_[_0xf878('0x31')](_0x339141[_0xf878('0x2d')],_0x339141[_0xf878('0x2e')]);_0x36b000[_0xf878('0x32')]=_[_0xf878('0x31')](_0x339141[_0xf878('0x2d')],qs[_0xf878('0x33')](_0x344aa4[_0xf878('0x2e')][_0xf878('0x33')]));_0x36b000['attributes']=_0x36b000['attributes']['length']?_0x36b000[_0xf878('0x32')]:_0x339141['model'];if(!_0x344aa4[_0xf878('0x2e')][_0xf878('0x4e')]('nolimit')){_0x36b000['limit']=qs[_0xf878('0x19')](_0x344aa4[_0xf878('0x2e')][_0xf878('0x19')]);_0x36b000[_0xf878('0x17')]=qs[_0xf878('0x17')](_0x344aa4[_0xf878('0x2e')][_0xf878('0x17')]);}_0x36b000[_0xf878('0x36')]=qs[_0xf878('0x37')](_0x344aa4[_0xf878('0x2e')][_0xf878('0x37')]);_0x36b000[_0xf878('0x3a')]=qs[_0xf878('0x30')](_[_0xf878('0x38')](_0x344aa4[_0xf878('0x2e')],_0x339141[_0xf878('0x30')]));if(_0x344aa4[_0xf878('0x2e')][_0xf878('0x39')]){_0x36b000['where']=_[_0xf878('0x3b')](_0x36b000['where'],{'$or':_[_0xf878('0x28')](_0x36b000[_0xf878('0x32')],function(_0x2e8a57){var _0x910e78={};_0x910e78[_0x2e8a57]={'$like':'%'+_0x344aa4[_0xf878('0x2e')][_0xf878('0x39')]+'%'};return _0x910e78;})});}_0x36b000[_0xf878('0x3a')]=_[_0xf878('0x3b')](_0x36b000[_0xf878('0x3a')],{'mailboxuser':_0x282985['mailbox']});_0x36b000=_[_0xf878('0x3b')]({},_0x36b000,_0x344aa4[_0xf878('0x3d')]);return db[_0xf878('0x4d')][_0xf878('0x4f')](_0x36b000)['then'](respondWithFilteredResult(_0x57f635,_0x36b000));})[_0xf878('0x40')](handleError(_0x57f635,null));};