7d1bf8ee5a1179debf1d137a13c920fd5226ef9e
[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 _0x0bc5=['end','count','offset','limit','set','Content-Range','json','reject','save','update','then','destroy','get','UserProfileResource','error','stack','name','send','VoiceMail','rawAttributes','query','filters','intersection','model','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','filter','type','key','VIRTUAL','field','merge','options','include','findAll','rows','catch','show','keys','length','includeAll','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Voicemails','UserProfileSection','userProfileId','autoAssociation','params','getMessages','findOne','map','mailbox','VoiceMailMessage','html-pdf','eml-format','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','lodash','squel','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../mysqldb','sendStatus','status'];(function(_0x4d75c2,_0x5c94be){var _0x4210b3=function(_0x17a3be){while(--_0x17a3be){_0x4d75c2['push'](_0x4d75c2['shift']());}};_0x4210b3(++_0x5c94be);}(_0x0bc5,0x95));var _0x50bc=function(_0x5b973c,_0x46c0d0){_0x5b973c=_0x5b973c-0x0;var _0xc3a214=_0x0bc5[_0x5b973c];return _0xc3a214;};'use strict';var pdf=require(_0x50bc('0x0'));var emlformat=require(_0x50bc('0x1'));var rimraf=require('rimraf');var zipdir=require(_0x50bc('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x50bc('0x3'));var moment=require(_0x50bc('0x4'));var BPromise=require(_0x50bc('0x5'));var Mustache=require(_0x50bc('0x6'));var util=require(_0x50bc('0x7'));var path=require(_0x50bc('0x8'));var sox=require(_0x50bc('0x9'));var csv=require(_0x50bc('0xa'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x50bc('0xb'));var squel=require(_0x50bc('0xc'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x50bc('0xa'));var querystring=require(_0x50bc('0xd'));var Papa=require(_0x50bc('0xe'));var Redis=require(_0x50bc('0xf'));var authService=require('../../components/auth/service');var qs=require(_0x50bc('0x10'));var hardwareService=require(_0x50bc('0x11'));var logger=require(_0x50bc('0x12'))(_0x50bc('0x13'));var utils=require('../../config/utils');var config=require('../../config/environment');var db=require(_0x50bc('0x14'))['db'];function respondWithStatusCode(_0x1966b0,_0x39b008){_0x39b008=_0x39b008||0xcc;return function(_0x3959dc){if(_0x3959dc){return _0x1966b0[_0x50bc('0x15')](_0x39b008);}return _0x1966b0[_0x50bc('0x16')](_0x39b008)[_0x50bc('0x17')]();};}function respondWithResult(_0x352ed9,_0x23c3c3){_0x23c3c3=_0x23c3c3||0xc8;return function(_0x176e7c){if(_0x176e7c){return _0x352ed9['status'](_0x23c3c3)['json'](_0x176e7c);}};}function respondWithFilteredResult(_0x56de58,_0x3af6c7){return function(_0x2d277d){if(_0x2d277d){var _0x36a727=_0x2d277d[_0x50bc('0x18')],_0xd05df5=_0x3af6c7[_0x50bc('0x19')],_0xb8b6f0=_0x3af6c7[_0x50bc('0x19')]+_0x3af6c7[_0x50bc('0x1a')],_0x13a9e3;if(_0xb8b6f0>=_0x36a727){_0xb8b6f0=_0x36a727;_0x13a9e3=0xc8;}else{_0x13a9e3=0xce;}_0x56de58[_0x50bc('0x16')](_0x13a9e3);return _0x56de58[_0x50bc('0x1b')](_0x50bc('0x1c'),_0xd05df5+'-'+_0xb8b6f0+'/'+_0x36a727)[_0x50bc('0x1d')](_0x2d277d);}return null;};}function patchUpdates(_0x3f5445){return function(_0x17296b){try{jsonpatch['apply'](_0x17296b,_0x3f5445,!![]);}catch(_0x4d9b67){return BPromise[_0x50bc('0x1e')](_0x4d9b67);}return _0x17296b[_0x50bc('0x1f')]();};}function saveUpdates(_0x26ac9a,_0x552a5a){return function(_0x3ac39e){if(_0x3ac39e){return _0x3ac39e[_0x50bc('0x20')](_0x26ac9a)[_0x50bc('0x21')](function(_0x3f8625){return _0x3f8625;});}return null;};}function removeEntity(_0x38c17f,_0x525a05){return function(_0x2e0fb8){if(_0x2e0fb8){return _0x2e0fb8[_0x50bc('0x22')]()['then'](function(){var _0x23079d=_0x2e0fb8[_0x50bc('0x23')]({'plain':!![]});var _0x9d9814='Voicemails';return db[_0x50bc('0x24')][_0x50bc('0x22')]({'where':{'type':_0x9d9814,'resourceId':_0x23079d['id']}})[_0x50bc('0x21')](function(){return _0x2e0fb8;});})['then'](function(){_0x38c17f[_0x50bc('0x16')](0xcc)[_0x50bc('0x17')]();});}};}function handleEntityNotFound(_0x5b2266,_0x2e049e){return function(_0x5f261a){if(!_0x5f261a){_0x5b2266[_0x50bc('0x15')](0x194);}return _0x5f261a;};}function handleError(_0x47d372,_0x452a85){_0x452a85=_0x452a85||0x1f4;return function(_0x23c020){logger[_0x50bc('0x25')](_0x23c020[_0x50bc('0x26')]);if(_0x23c020[_0x50bc('0x27')]){delete _0x23c020['name'];}_0x47d372[_0x50bc('0x16')](_0x452a85)[_0x50bc('0x28')](_0x23c020);};}exports['index']=function(_0x32014f,_0x1ee35f){var _0x62178d={},_0x233e08={},_0x5dc20f={'count':0x0,'rows':[]};var _0x53074f=db[_0x50bc('0x29')][_0x50bc('0x2a')];_0x233e08['model']=_['keys'](_0x53074f);_0x233e08[_0x50bc('0x2b')]=_['keys'](_0x32014f[_0x50bc('0x2b')]);_0x233e08[_0x50bc('0x2c')]=_[_0x50bc('0x2d')](_0x233e08[_0x50bc('0x2e')],_0x233e08[_0x50bc('0x2b')]);_0x62178d[_0x50bc('0x2f')]=_[_0x50bc('0x2d')](_0x233e08[_0x50bc('0x2e')],qs[_0x50bc('0x30')](_0x32014f[_0x50bc('0x2b')]['fields']));_0x62178d[_0x50bc('0x2f')]=_0x62178d[_0x50bc('0x2f')]['length']?_0x62178d['attributes']:_0x233e08[_0x50bc('0x2e')];if(!_0x32014f[_0x50bc('0x2b')][_0x50bc('0x31')](_0x50bc('0x32'))){_0x62178d[_0x50bc('0x1a')]=qs['limit'](_0x32014f[_0x50bc('0x2b')][_0x50bc('0x1a')]);_0x62178d[_0x50bc('0x19')]=qs[_0x50bc('0x19')](_0x32014f['query'][_0x50bc('0x19')]);}_0x62178d[_0x50bc('0x33')]=qs[_0x50bc('0x34')](_0x32014f[_0x50bc('0x2b')][_0x50bc('0x34')]);_0x62178d[_0x50bc('0x35')]=qs[_0x50bc('0x2c')](_[_0x50bc('0x36')](_0x32014f[_0x50bc('0x2b')],_0x233e08['filters']));if(_0x32014f[_0x50bc('0x2b')][_0x50bc('0x37')]){_0x62178d[_0x50bc('0x35')]=_['merge'](_0x62178d['where'],{'$or':_['map'](_0x53074f,function(_0xdc7717){if(_0xdc7717[_0x50bc('0x38')][_0x50bc('0x39')]!==_0x50bc('0x3a')){var _0x4a0f51={};_0x4a0f51[_0xdc7717[_0x50bc('0x3b')]]={'$like':'%'+_0x32014f[_0x50bc('0x2b')][_0x50bc('0x37')]+'%'};return _0x4a0f51;}})});}_0x62178d=_[_0x50bc('0x3c')]({},_0x62178d,_0x32014f[_0x50bc('0x3d')]);var _0x571b03={'where':_0x62178d['where']};return db['VoiceMail'][_0x50bc('0x18')](_0x571b03)[_0x50bc('0x21')](function(_0x506b4c){_0x5dc20f[_0x50bc('0x18')]=_0x506b4c;if(_0x32014f[_0x50bc('0x2b')]['includeAll']){_0x62178d[_0x50bc('0x3e')]=[{'all':!![]}];}return db['VoiceMail'][_0x50bc('0x3f')](_0x62178d);})['then'](function(_0x5b3acf){_0x5dc20f[_0x50bc('0x40')]=_0x5b3acf;return _0x5dc20f;})['then'](respondWithFilteredResult(_0x1ee35f,_0x62178d))[_0x50bc('0x41')](handleError(_0x1ee35f,null));};exports[_0x50bc('0x42')]=function(_0xbf76bc,_0x17df91){var _0x4f9cff={'raw':!![],'where':{'id':_0xbf76bc['params']['id']}},_0x145757={};_0x145757[_0x50bc('0x2e')]=_['keys'](db['VoiceMail'][_0x50bc('0x2a')]);_0x145757[_0x50bc('0x2b')]=_[_0x50bc('0x43')](_0xbf76bc[_0x50bc('0x2b')]);_0x145757['filters']=_[_0x50bc('0x2d')](_0x145757[_0x50bc('0x2e')],_0x145757[_0x50bc('0x2b')]);_0x4f9cff['attributes']=_[_0x50bc('0x2d')](_0x145757[_0x50bc('0x2e')],qs[_0x50bc('0x30')](_0xbf76bc[_0x50bc('0x2b')][_0x50bc('0x30')]));_0x4f9cff['attributes']=_0x4f9cff[_0x50bc('0x2f')][_0x50bc('0x44')]?_0x4f9cff[_0x50bc('0x2f')]:_0x145757[_0x50bc('0x2e')];if(_0xbf76bc[_0x50bc('0x2b')][_0x50bc('0x45')]){_0x4f9cff[_0x50bc('0x3e')]=[{'all':!![]}];}_0x4f9cff=_[_0x50bc('0x3c')]({},_0x4f9cff,_0xbf76bc[_0x50bc('0x3d')]);return db[_0x50bc('0x29')][_0x50bc('0x46')](_0x4f9cff)[_0x50bc('0x21')](handleEntityNotFound(_0x17df91,null))[_0x50bc('0x21')](respondWithResult(_0x17df91,null))[_0x50bc('0x41')](handleError(_0x17df91,null));};exports[_0x50bc('0x47')]=function(_0x1b7d9e,_0x261b42){return db[_0x50bc('0x29')][_0x50bc('0x47')](_0x1b7d9e[_0x50bc('0x48')],{})[_0x50bc('0x21')](function(_0x31b009){var _0x29b8f6=_0x1b7d9e[_0x50bc('0x49')]['get']({'plain':!![]});if(!_0x29b8f6)throw new Error(_0x50bc('0x4a'));if(_0x29b8f6[_0x50bc('0x4b')]==='user'){var _0x1e1e15=_0x31b009['get']({'plain':!![]});var _0x10d7e2=_0x50bc('0x4c');return db[_0x50bc('0x4d')][_0x50bc('0x46')]({'where':{'name':_0x10d7e2,'userProfileId':_0x29b8f6[_0x50bc('0x4e')]},'raw':!![]})[_0x50bc('0x21')](function(_0x33ed6f){if(_0x33ed6f&&_0x33ed6f[_0x50bc('0x4f')]===0x0){return db['UserProfileResource'][_0x50bc('0x47')]({'name':_0x1e1e15['name'],'resourceId':_0x1e1e15['id'],'type':_0x33ed6f[_0x50bc('0x27')],'sectionId':_0x33ed6f['id']},{})[_0x50bc('0x21')](function(){return _0x31b009;});}else{return _0x31b009;}})[_0x50bc('0x41')](function(_0x185de5){logger[_0x50bc('0x25')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x185de5);throw _0x185de5;});}return _0x31b009;})[_0x50bc('0x21')](respondWithResult(_0x261b42,0xc9))['catch'](handleError(_0x261b42,null));};exports[_0x50bc('0x20')]=function(_0x29d3b4,_0xfef94e){if(_0x29d3b4['body']['id']){delete _0x29d3b4[_0x50bc('0x48')]['id'];}return db[_0x50bc('0x29')][_0x50bc('0x46')]({'where':{'id':_0x29d3b4[_0x50bc('0x50')]['id']}})['then'](handleEntityNotFound(_0xfef94e,null))[_0x50bc('0x21')](saveUpdates(_0x29d3b4['body'],null))['then'](respondWithResult(_0xfef94e,null))['catch'](handleError(_0xfef94e,null));};exports['destroy']=function(_0xc035b6,_0x3f4ed1){return db[_0x50bc('0x29')][_0x50bc('0x46')]({'where':{'id':_0xc035b6[_0x50bc('0x50')]['id']}})[_0x50bc('0x21')](handleEntityNotFound(_0x3f4ed1,null))[_0x50bc('0x21')](removeEntity(_0x3f4ed1,null))['catch'](handleError(_0x3f4ed1,null));};exports[_0x50bc('0x51')]=function(_0x2c41ad,_0x93f48,_0x5b4874){return db[_0x50bc('0x29')][_0x50bc('0x52')]({'where':{'id':_0x2c41ad[_0x50bc('0x50')]['id']}})[_0x50bc('0x21')](handleEntityNotFound(_0x93f48,null))[_0x50bc('0x21')](function(_0x12eefc){var _0x2571fc;var _0x4d86c8={},_0x54ae47={};_0x54ae47[_0x50bc('0x2e')]=_[_0x50bc('0x43')](db['VoiceMailMessage'][_0x50bc('0x2a')]);_0x54ae47['query']=_['keys'](_0x2c41ad[_0x50bc('0x2b')]);_0x54ae47[_0x50bc('0x2c')]=_['intersection'](_0x54ae47['model'],_0x54ae47[_0x50bc('0x2b')]);_0x4d86c8[_0x50bc('0x2f')]=_[_0x50bc('0x2d')](_0x54ae47['model'],qs[_0x50bc('0x30')](_0x2c41ad[_0x50bc('0x2b')][_0x50bc('0x30')]));_0x4d86c8['attributes']=_0x4d86c8[_0x50bc('0x2f')][_0x50bc('0x44')]?_0x4d86c8[_0x50bc('0x2f')]:_0x54ae47[_0x50bc('0x2e')];if(!_0x2c41ad[_0x50bc('0x2b')][_0x50bc('0x31')](_0x50bc('0x32'))){_0x4d86c8[_0x50bc('0x1a')]=qs[_0x50bc('0x1a')](_0x2c41ad[_0x50bc('0x2b')][_0x50bc('0x1a')]);_0x4d86c8[_0x50bc('0x19')]=qs['offset'](_0x2c41ad[_0x50bc('0x2b')][_0x50bc('0x19')]);}_0x4d86c8[_0x50bc('0x33')]=qs[_0x50bc('0x34')](_0x2c41ad[_0x50bc('0x2b')][_0x50bc('0x34')]);_0x4d86c8['where']=qs['filters'](_['pick'](_0x2c41ad[_0x50bc('0x2b')],_0x54ae47['filters']));if(_0x2c41ad[_0x50bc('0x2b')][_0x50bc('0x37')]){_0x4d86c8[_0x50bc('0x35')]=_[_0x50bc('0x3c')](_0x4d86c8['where'],{'$or':_[_0x50bc('0x53')](_0x4d86c8['attributes'],function(_0x194831){var _0x2b6144={};_0x2b6144[_0x194831]={'$like':'%'+_0x2c41ad[_0x50bc('0x2b')]['filter']+'%'};return _0x2b6144;})});}_0x4d86c8[_0x50bc('0x35')]=_[_0x50bc('0x3c')](_0x4d86c8[_0x50bc('0x35')],{'mailboxuser':_0x12eefc[_0x50bc('0x54')]});_0x4d86c8=_[_0x50bc('0x3c')]({},_0x4d86c8,_0x2c41ad[_0x50bc('0x3d')]);return db[_0x50bc('0x55')]['findAndCountAll'](_0x4d86c8)[_0x50bc('0x21')](respondWithFilteredResult(_0x93f48,_0x4d86c8));})['catch'](handleError(_0x93f48,null));};