8dc569c6255dd254e5aabab8992e03daf7299fd7
[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 _0x3419=['getMessages','findOne','mailbox','VoiceMailMessage','findAndCountAll','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','to-csv','ejs','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/environment','../../config/license/util','../../mysqldb','end','status','count','offset','limit','set','reject','save','then','Voicemails','sendStatus','error','stack','name','send','rawAttributes','fieldName','type','key','model','map','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','includeAll','VoiceMail','findAll','rows','catch','show','include','options','find','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','get','UserProfileSection','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','params','destroy'];(function(_0x3f7146,_0x824eba){var _0x316350=function(_0x57d1c5){while(--_0x57d1c5){_0x3f7146['push'](_0x3f7146['shift']());}};_0x316350(++_0x824eba);}(_0x3419,0xb3));var _0x9341=function(_0x48245e,_0x178e51){_0x48245e=_0x48245e-0x0;var _0x4e5e30=_0x3419[_0x48245e];return _0x4e5e30;};'use strict';var pdf=require(_0x9341('0x0'));var emlformat=require(_0x9341('0x1'));var rimraf=require(_0x9341('0x2'));var zipdir=require(_0x9341('0x3'));var jsonpatch=require(_0x9341('0x4'));var rp=require('request-promise');var moment=require(_0x9341('0x5'));var BPromise=require(_0x9341('0x6'));var Mustache=require(_0x9341('0x7'));var util=require(_0x9341('0x8'));var path=require(_0x9341('0x9'));var sox=require('sox');var csv=require(_0x9341('0xa'));var ejs=require(_0x9341('0xb'));var fs=require('fs');var _=require('lodash');var squel=require(_0x9341('0xc'));var crypto=require(_0x9341('0xd'));var jsforce=require(_0x9341('0xe'));var deskjs=require(_0x9341('0xf'));var toCsv=require(_0x9341('0xa'));var querystring=require(_0x9341('0x10'));var Papa=require('papaparse');var Redis=require(_0x9341('0x11'));var authService=require('../../components/auth/service');var qs=require(_0x9341('0x12'));var as=require(_0x9341('0x13'));var hardwareService=require(_0x9341('0x14'));var logger=require('../../config/logger')(_0x9341('0x15'));var utils=require('../../config/utils');var config=require(_0x9341('0x16'));var licenseUtil=require(_0x9341('0x17'));var db=require(_0x9341('0x18'))['db'];function respondWithStatusCode(_0x277ddb,_0x4e239a){_0x4e239a=_0x4e239a||0xcc;return function(_0x3dbc07){if(_0x3dbc07){return _0x277ddb['sendStatus'](_0x4e239a);}return _0x277ddb['status'](_0x4e239a)[_0x9341('0x19')]();};}function respondWithResult(_0x4c430,_0x485ccb){_0x485ccb=_0x485ccb||0xc8;return function(_0xb9218a){if(_0xb9218a){return _0x4c430[_0x9341('0x1a')](_0x485ccb)['json'](_0xb9218a);}};}function respondWithFilteredResult(_0xe4a706,_0x451ba7){return function(_0xc69234){if(_0xc69234){var _0x4cea41=_0xc69234[_0x9341('0x1b')],_0x32a03a=_0x451ba7[_0x9341('0x1c')],_0x55dcac=_0x451ba7[_0x9341('0x1c')]+_0x451ba7[_0x9341('0x1d')],_0x256b0f;if(_0x55dcac>=_0x4cea41){_0x55dcac=_0x4cea41;_0x256b0f=0xc8;}else{_0x256b0f=0xce;}_0xe4a706[_0x9341('0x1a')](_0x256b0f);return _0xe4a706[_0x9341('0x1e')]('Content-Range',_0x32a03a+'-'+_0x55dcac+'/'+_0x4cea41)['json'](_0xc69234);}return null;};}function patchUpdates(_0x5ba251){return function(_0x26593a){try{jsonpatch['apply'](_0x26593a,_0x5ba251,!![]);}catch(_0x5ee3f3){return BPromise[_0x9341('0x1f')](_0x5ee3f3);}return _0x26593a[_0x9341('0x20')]();};}function saveUpdates(_0xfeb8d8,_0x47ad4c){return function(_0x5a615f){if(_0x5a615f){return _0x5a615f['update'](_0xfeb8d8)['then'](function(_0x4d7ed8){return _0x4d7ed8;});}return null;};}function removeEntity(_0x15d06f,_0x4e9ded){return function(_0x58817f){if(_0x58817f){return _0x58817f['destroy']()[_0x9341('0x21')](function(){var _0x2501d6=_0x58817f['get']({'plain':!![]});var _0x48271f=_0x9341('0x22');return db['UserProfileResource']['destroy']({'where':{'type':_0x48271f,'resourceId':_0x2501d6['id']}})[_0x9341('0x21')](function(){return _0x58817f;});})[_0x9341('0x21')](function(){_0x15d06f['status'](0xcc)[_0x9341('0x19')]();});}};}function handleEntityNotFound(_0x3761a1,_0x35b6d5){return function(_0x557d48){if(!_0x557d48){_0x3761a1[_0x9341('0x23')](0x194);}return _0x557d48;};}function handleError(_0x183707,_0x4698b3){_0x4698b3=_0x4698b3||0x1f4;return function(_0x51fe17){logger[_0x9341('0x24')](_0x51fe17[_0x9341('0x25')]);if(_0x51fe17['name']){delete _0x51fe17[_0x9341('0x26')];}_0x183707[_0x9341('0x1a')](_0x4698b3)[_0x9341('0x27')](_0x51fe17);};}exports['index']=function(_0x5b719e,_0x9c128b){var _0x7f3112={},_0x4d14f8={},_0x295780={'count':0x0,'rows':[]};var _0x31f15b=_['map'](db['VoiceMail'][_0x9341('0x28')],function(_0x367b90){return{'name':_0x367b90[_0x9341('0x29')],'type':_0x367b90[_0x9341('0x2a')][_0x9341('0x2b')]};});_0x4d14f8[_0x9341('0x2c')]=_[_0x9341('0x2d')](_0x31f15b,_0x9341('0x26'));_0x4d14f8[_0x9341('0x2e')]=_[_0x9341('0x2f')](_0x5b719e[_0x9341('0x2e')]);_0x4d14f8[_0x9341('0x30')]=_[_0x9341('0x31')](_0x4d14f8[_0x9341('0x2c')],_0x4d14f8[_0x9341('0x2e')]);_0x7f3112[_0x9341('0x32')]=_['intersection'](_0x4d14f8[_0x9341('0x2c')],qs[_0x9341('0x33')](_0x5b719e[_0x9341('0x2e')][_0x9341('0x33')]));_0x7f3112['attributes']=_0x7f3112[_0x9341('0x32')][_0x9341('0x34')]?_0x7f3112[_0x9341('0x32')]:_0x4d14f8[_0x9341('0x2c')];if(!_0x5b719e['query'][_0x9341('0x35')](_0x9341('0x36'))){_0x7f3112[_0x9341('0x1d')]=qs[_0x9341('0x1d')](_0x5b719e['query'][_0x9341('0x1d')]);_0x7f3112[_0x9341('0x1c')]=qs[_0x9341('0x1c')](_0x5b719e['query'][_0x9341('0x1c')]);}_0x7f3112[_0x9341('0x37')]=qs[_0x9341('0x38')](_0x5b719e[_0x9341('0x2e')][_0x9341('0x38')]);_0x7f3112[_0x9341('0x39')]=qs[_0x9341('0x30')](_[_0x9341('0x3a')](_0x5b719e[_0x9341('0x2e')],_0x4d14f8[_0x9341('0x30')]),_0x31f15b);if(_0x5b719e[_0x9341('0x2e')][_0x9341('0x3b')]){_0x7f3112[_0x9341('0x39')]=_[_0x9341('0x3c')](_0x7f3112[_0x9341('0x39')],{'$or':_[_0x9341('0x2d')](_0x31f15b,function(_0x64773b){if(_0x64773b[_0x9341('0x2a')]!==_0x9341('0x3d')){var _0x15fde9={};_0x15fde9[_0x64773b['name']]={'$like':'%'+_0x5b719e['query'][_0x9341('0x3b')]+'%'};return _0x15fde9;}})});}_0x7f3112=_[_0x9341('0x3c')]({},_0x7f3112,_0x5b719e['options']);var _0x56e448={'where':_0x7f3112[_0x9341('0x39')]};return db['VoiceMail'][_0x9341('0x1b')](_0x56e448)['then'](function(_0x1db86a){_0x295780[_0x9341('0x1b')]=_0x1db86a;if(_0x5b719e[_0x9341('0x2e')][_0x9341('0x3e')]){_0x7f3112['include']=[{'all':!![]}];}return db[_0x9341('0x3f')][_0x9341('0x40')](_0x7f3112);})['then'](function(_0x27319c){_0x295780[_0x9341('0x41')]=_0x27319c;return _0x295780;})[_0x9341('0x21')](respondWithFilteredResult(_0x9c128b,_0x7f3112))[_0x9341('0x42')](handleError(_0x9c128b,null));};exports[_0x9341('0x43')]=function(_0x22b5e2,_0x6958c7){var _0x22a31d={'raw':!![],'where':{'id':_0x22b5e2['params']['id']}},_0x47197e={};_0x47197e[_0x9341('0x2c')]=_[_0x9341('0x2f')](db[_0x9341('0x3f')][_0x9341('0x28')]);_0x47197e[_0x9341('0x2e')]=_[_0x9341('0x2f')](_0x22b5e2[_0x9341('0x2e')]);_0x47197e['filters']=_[_0x9341('0x31')](_0x47197e[_0x9341('0x2c')],_0x47197e[_0x9341('0x2e')]);_0x22a31d['attributes']=_[_0x9341('0x31')](_0x47197e[_0x9341('0x2c')],qs['fields'](_0x22b5e2[_0x9341('0x2e')][_0x9341('0x33')]));_0x22a31d['attributes']=_0x22a31d[_0x9341('0x32')][_0x9341('0x34')]?_0x22a31d[_0x9341('0x32')]:_0x47197e['model'];if(_0x22b5e2[_0x9341('0x2e')]['includeAll']){_0x22a31d[_0x9341('0x44')]=[{'all':!![]}];}_0x22a31d=_[_0x9341('0x3c')]({},_0x22a31d,_0x22b5e2[_0x9341('0x45')]);return db['VoiceMail'][_0x9341('0x46')](_0x22a31d)[_0x9341('0x21')](handleEntityNotFound(_0x6958c7,null))[_0x9341('0x21')](respondWithResult(_0x6958c7,null))[_0x9341('0x42')](handleError(_0x6958c7,null));};exports[_0x9341('0x47')]=function(_0x456f2c,_0x1b272c){return db[_0x9341('0x3f')][_0x9341('0x47')](_0x456f2c['body'],{})[_0x9341('0x21')](function(_0x53bf00){var _0x27f6e5=_0x456f2c[_0x9341('0x48')]['get']({'plain':!![]});if(!_0x27f6e5)throw new Error(_0x9341('0x49'));if(_0x27f6e5['role']===_0x9341('0x48')){var _0x28186f=_0x53bf00[_0x9341('0x4a')]({'plain':!![]});var _0x59c9b4=_0x9341('0x22');return db[_0x9341('0x4b')][_0x9341('0x46')]({'where':{'name':_0x59c9b4,'userProfileId':_0x27f6e5['userProfileId']},'raw':!![]})[_0x9341('0x21')](function(_0x326dbc){if(_0x326dbc&&_0x326dbc[_0x9341('0x4c')]===0x0){return db[_0x9341('0x4d')][_0x9341('0x47')]({'name':_0x28186f[_0x9341('0x26')],'resourceId':_0x28186f['id'],'type':_0x326dbc[_0x9341('0x26')],'sectionId':_0x326dbc['id']},{})[_0x9341('0x21')](function(){return _0x53bf00;});}else{return _0x53bf00;}})[_0x9341('0x42')](function(_0x53a735){logger['error'](_0x9341('0x4e'),_0x53a735);throw _0x53a735;});}return _0x53bf00;})[_0x9341('0x21')](respondWithResult(_0x1b272c,0xc9))[_0x9341('0x42')](handleError(_0x1b272c,null));};exports['update']=function(_0x303747,_0x16c1be){if(_0x303747['body']['id']){delete _0x303747[_0x9341('0x4f')]['id'];}return db[_0x9341('0x3f')][_0x9341('0x46')]({'where':{'id':_0x303747[_0x9341('0x50')]['id']}})['then'](handleEntityNotFound(_0x16c1be,null))[_0x9341('0x21')](saveUpdates(_0x303747['body'],null))[_0x9341('0x21')](respondWithResult(_0x16c1be,null))[_0x9341('0x42')](handleError(_0x16c1be,null));};exports[_0x9341('0x51')]=function(_0xc529f6,_0x93ef9d){return db[_0x9341('0x3f')]['find']({'where':{'id':_0xc529f6[_0x9341('0x50')]['id']}})['then'](handleEntityNotFound(_0x93ef9d,null))[_0x9341('0x21')](removeEntity(_0x93ef9d,null))[_0x9341('0x42')](handleError(_0x93ef9d,null));};exports[_0x9341('0x52')]=function(_0x535375,_0x1c5dbc,_0x3f6995){return db[_0x9341('0x3f')][_0x9341('0x53')]({'where':{'id':_0x535375['params']['id']}})[_0x9341('0x21')](handleEntityNotFound(_0x1c5dbc,null))[_0x9341('0x21')](function(_0x2898cc){var _0x38ec1a;var _0x1e998e={},_0x5a305f={};_0x5a305f['model']=_[_0x9341('0x2f')](db['VoiceMailMessage'][_0x9341('0x28')]);_0x5a305f[_0x9341('0x2e')]=_[_0x9341('0x2f')](_0x535375[_0x9341('0x2e')]);_0x5a305f[_0x9341('0x30')]=_['intersection'](_0x5a305f[_0x9341('0x2c')],_0x5a305f[_0x9341('0x2e')]);_0x1e998e[_0x9341('0x32')]=_[_0x9341('0x31')](_0x5a305f[_0x9341('0x2c')],qs[_0x9341('0x33')](_0x535375['query']['fields']));_0x1e998e[_0x9341('0x32')]=_0x1e998e['attributes'][_0x9341('0x34')]?_0x1e998e[_0x9341('0x32')]:_0x5a305f[_0x9341('0x2c')];if(!_0x535375[_0x9341('0x2e')][_0x9341('0x35')](_0x9341('0x36'))){_0x1e998e['limit']=qs[_0x9341('0x1d')](_0x535375[_0x9341('0x2e')][_0x9341('0x1d')]);_0x1e998e['offset']=qs[_0x9341('0x1c')](_0x535375[_0x9341('0x2e')][_0x9341('0x1c')]);}_0x1e998e[_0x9341('0x37')]=qs[_0x9341('0x38')](_0x535375['query'][_0x9341('0x38')]);_0x1e998e[_0x9341('0x39')]=qs[_0x9341('0x30')](_[_0x9341('0x3a')](_0x535375[_0x9341('0x2e')],_0x5a305f['filters']));if(_0x535375[_0x9341('0x2e')][_0x9341('0x3b')]){_0x1e998e[_0x9341('0x39')]=_['merge'](_0x1e998e[_0x9341('0x39')],{'$or':_[_0x9341('0x2d')](_0x1e998e[_0x9341('0x32')],function(_0x4f51c3){var _0x344ded={};_0x344ded[_0x4f51c3]={'$like':'%'+_0x535375[_0x9341('0x2e')][_0x9341('0x3b')]+'%'};return _0x344ded;})});}_0x1e998e[_0x9341('0x39')]=_[_0x9341('0x3c')](_0x1e998e[_0x9341('0x39')],{'mailboxuser':_0x2898cc[_0x9341('0x54')]});_0x1e998e=_[_0x9341('0x3c')]({},_0x1e998e,_0x535375['options']);return db[_0x9341('0x55')][_0x9341('0x56')](_0x1e998e)['then'](respondWithFilteredResult(_0x1c5dbc,_0x1e998e));})[_0x9341('0x42')](handleError(_0x1c5dbc,null));};