54150848d0b15599e9da7abda0ab17df84dee5e4
[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 _0xc66e=['error','stack','name','index','map','VoiceMail','key','model','keys','query','intersection','attributes','fields','length','nolimit','order','sort','where','filters','pick','merge','type','VIRTUAL','filter','options','include','findAll','rows','catch','params','rawAttributes','includeAll','find','create','body','role','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','getMessages','findOne','VoiceMailMessage','hasOwnProperty','findAndCountAll','html-pdf','rimraf','fast-json-patch','request-promise','bluebird','mustache','util','path','to-csv','lodash','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','json','count','offset','limit','set','Content-Range','apply','reject','save','update','destroy','get','Voicemails','UserProfileResource','then','end','sendStatus'];(function(_0x2477f7,_0x36b541){var _0x3f019b=function(_0xb6c8df){while(--_0xb6c8df){_0x2477f7['push'](_0x2477f7['shift']());}};_0x3f019b(++_0x36b541);}(_0xc66e,0xd1));var _0xec66=function(_0x1c510a,_0x1413a9){_0x1c510a=_0x1c510a-0x0;var _0x23cedd=_0xc66e[_0x1c510a];return _0x23cedd;};'use strict';var pdf=require(_0xec66('0x0'));var emlformat=require('eml-format');var rimraf=require(_0xec66('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xec66('0x2'));var rp=require(_0xec66('0x3'));var moment=require('moment');var BPromise=require(_0xec66('0x4'));var Mustache=require(_0xec66('0x5'));var util=require(_0xec66('0x6'));var path=require(_0xec66('0x7'));var sox=require('sox');var csv=require(_0xec66('0x8'));var ejs=require('ejs');var fs=require('fs');var _=require(_0xec66('0x9'));var squel=require('squel');var crypto=require(_0xec66('0xa'));var jsforce=require(_0xec66('0xb'));var deskjs=require(_0xec66('0xc'));var toCsv=require('to-csv');var querystring=require(_0xec66('0xd'));var Papa=require(_0xec66('0xe'));var Redis=require('ioredis');var authService=require(_0xec66('0xf'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xec66('0x10'));var logger=require(_0xec66('0x11'))('api');var utils=require(_0xec66('0x12'));var config=require(_0xec66('0x13'));var licenseUtil=require(_0xec66('0x14'));var db=require(_0xec66('0x15'))['db'];function respondWithStatusCode(_0x2d2ad4,_0x421c6b){_0x421c6b=_0x421c6b||0xcc;return function(_0x9a32d4){if(_0x9a32d4){return _0x2d2ad4['sendStatus'](_0x421c6b);}return _0x2d2ad4[_0xec66('0x16')](_0x421c6b)['end']();};}function respondWithResult(_0x2d7d9c,_0x10219d){_0x10219d=_0x10219d||0xc8;return function(_0x4aa00d){if(_0x4aa00d){return _0x2d7d9c[_0xec66('0x16')](_0x10219d)[_0xec66('0x17')](_0x4aa00d);}};}function respondWithFilteredResult(_0x488544,_0x2f8ea7){return function(_0x488a03){if(_0x488a03){var _0xa62fbb=_0x488a03[_0xec66('0x18')],_0x4952f3=_0x2f8ea7[_0xec66('0x19')],_0x3c724f=_0x2f8ea7[_0xec66('0x19')]+_0x2f8ea7[_0xec66('0x1a')],_0x47b4d8;if(_0x3c724f>=_0xa62fbb){_0x3c724f=_0xa62fbb;_0x47b4d8=0xc8;}else{_0x47b4d8=0xce;}_0x488544['status'](_0x47b4d8);return _0x488544[_0xec66('0x1b')](_0xec66('0x1c'),_0x4952f3+'-'+_0x3c724f+'/'+_0xa62fbb)[_0xec66('0x17')](_0x488a03);}return null;};}function patchUpdates(_0x3ee03b){return function(_0x194cc4){try{jsonpatch[_0xec66('0x1d')](_0x194cc4,_0x3ee03b,!![]);}catch(_0xfa98a6){return BPromise[_0xec66('0x1e')](_0xfa98a6);}return _0x194cc4[_0xec66('0x1f')]();};}function saveUpdates(_0x245640,_0x5f39ec){return function(_0x3f3d70){if(_0x3f3d70){return _0x3f3d70[_0xec66('0x20')](_0x245640)['then'](function(_0x2552f8){return _0x2552f8;});}return null;};}function removeEntity(_0x222db8,_0x43c258){return function(_0x164560){if(_0x164560){return _0x164560[_0xec66('0x21')]()['then'](function(){var _0xe3be97=_0x164560[_0xec66('0x22')]({'plain':!![]});var _0x39f168=_0xec66('0x23');return db[_0xec66('0x24')]['destroy']({'where':{'type':_0x39f168,'resourceId':_0xe3be97['id']}})[_0xec66('0x25')](function(){return _0x164560;});})[_0xec66('0x25')](function(){_0x222db8['status'](0xcc)[_0xec66('0x26')]();});}};}function handleEntityNotFound(_0x42671e,_0x128500){return function(_0x1aa5e6){if(!_0x1aa5e6){_0x42671e[_0xec66('0x27')](0x194);}return _0x1aa5e6;};}function handleError(_0x5da7f,_0x425aff){_0x425aff=_0x425aff||0x1f4;return function(_0x471640){logger[_0xec66('0x28')](_0x471640[_0xec66('0x29')]);if(_0x471640['name']){delete _0x471640[_0xec66('0x2a')];}_0x5da7f[_0xec66('0x16')](_0x425aff)['send'](_0x471640);};}exports[_0xec66('0x2b')]=function(_0x29f730,_0x1faae6){var _0x5db6a8={},_0x1f02d3={},_0x23c259={'count':0x0,'rows':[]};var _0x492d8f=_[_0xec66('0x2c')](db[_0xec66('0x2d')]['rawAttributes'],function(_0x65668e){return{'name':_0x65668e['fieldName'],'type':_0x65668e['type'][_0xec66('0x2e')]};});_0x1f02d3[_0xec66('0x2f')]=_['map'](_0x492d8f,_0xec66('0x2a'));_0x1f02d3['query']=_[_0xec66('0x30')](_0x29f730[_0xec66('0x31')]);_0x1f02d3['filters']=_[_0xec66('0x32')](_0x1f02d3['model'],_0x1f02d3['query']);_0x5db6a8[_0xec66('0x33')]=_[_0xec66('0x32')](_0x1f02d3[_0xec66('0x2f')],qs[_0xec66('0x34')](_0x29f730[_0xec66('0x31')][_0xec66('0x34')]));_0x5db6a8['attributes']=_0x5db6a8[_0xec66('0x33')][_0xec66('0x35')]?_0x5db6a8[_0xec66('0x33')]:_0x1f02d3[_0xec66('0x2f')];if(!_0x29f730[_0xec66('0x31')]['hasOwnProperty'](_0xec66('0x36'))){_0x5db6a8[_0xec66('0x1a')]=qs[_0xec66('0x1a')](_0x29f730[_0xec66('0x31')][_0xec66('0x1a')]);_0x5db6a8[_0xec66('0x19')]=qs[_0xec66('0x19')](_0x29f730[_0xec66('0x31')][_0xec66('0x19')]);}_0x5db6a8[_0xec66('0x37')]=qs[_0xec66('0x38')](_0x29f730[_0xec66('0x31')][_0xec66('0x38')]);_0x5db6a8[_0xec66('0x39')]=qs[_0xec66('0x3a')](_[_0xec66('0x3b')](_0x29f730[_0xec66('0x31')],_0x1f02d3[_0xec66('0x3a')]),_0x492d8f);if(_0x29f730[_0xec66('0x31')]['filter']){_0x5db6a8[_0xec66('0x39')]=_[_0xec66('0x3c')](_0x5db6a8[_0xec66('0x39')],{'$or':_[_0xec66('0x2c')](_0x492d8f,function(_0x4bfdf9){if(_0x4bfdf9[_0xec66('0x3d')]!==_0xec66('0x3e')){var _0x536456={};_0x536456[_0x4bfdf9[_0xec66('0x2a')]]={'$like':'%'+_0x29f730[_0xec66('0x31')][_0xec66('0x3f')]+'%'};return _0x536456;}})});}_0x5db6a8=_['merge']({},_0x5db6a8,_0x29f730[_0xec66('0x40')]);var _0x28757a={'where':_0x5db6a8[_0xec66('0x39')]};return db[_0xec66('0x2d')][_0xec66('0x18')](_0x28757a)['then'](function(_0x42dbbc){_0x23c259[_0xec66('0x18')]=_0x42dbbc;if(_0x29f730[_0xec66('0x31')]['includeAll']){_0x5db6a8[_0xec66('0x41')]=[{'all':!![]}];}return db[_0xec66('0x2d')][_0xec66('0x42')](_0x5db6a8);})[_0xec66('0x25')](function(_0x2427ab){_0x23c259[_0xec66('0x43')]=_0x2427ab;return _0x23c259;})[_0xec66('0x25')](respondWithFilteredResult(_0x1faae6,_0x5db6a8))[_0xec66('0x44')](handleError(_0x1faae6,null));};exports['show']=function(_0x2a3a12,_0x41d573){var _0x581f2e={'raw':!![],'where':{'id':_0x2a3a12[_0xec66('0x45')]['id']}},_0x1feb93={};_0x1feb93[_0xec66('0x2f')]=_[_0xec66('0x30')](db[_0xec66('0x2d')][_0xec66('0x46')]);_0x1feb93[_0xec66('0x31')]=_['keys'](_0x2a3a12[_0xec66('0x31')]);_0x1feb93[_0xec66('0x3a')]=_['intersection'](_0x1feb93[_0xec66('0x2f')],_0x1feb93['query']);_0x581f2e[_0xec66('0x33')]=_[_0xec66('0x32')](_0x1feb93[_0xec66('0x2f')],qs[_0xec66('0x34')](_0x2a3a12[_0xec66('0x31')][_0xec66('0x34')]));_0x581f2e[_0xec66('0x33')]=_0x581f2e[_0xec66('0x33')][_0xec66('0x35')]?_0x581f2e[_0xec66('0x33')]:_0x1feb93[_0xec66('0x2f')];if(_0x2a3a12[_0xec66('0x31')][_0xec66('0x47')]){_0x581f2e['include']=[{'all':!![]}];}_0x581f2e=_[_0xec66('0x3c')]({},_0x581f2e,_0x2a3a12[_0xec66('0x40')]);return db[_0xec66('0x2d')][_0xec66('0x48')](_0x581f2e)[_0xec66('0x25')](handleEntityNotFound(_0x41d573,null))[_0xec66('0x25')](respondWithResult(_0x41d573,null))[_0xec66('0x44')](handleError(_0x41d573,null));};exports['create']=function(_0x2d5403,_0x43a0c5){return db[_0xec66('0x2d')][_0xec66('0x49')](_0x2d5403[_0xec66('0x4a')],{})[_0xec66('0x25')](function(_0x40e737){var _0xacf377=_0x2d5403['user'][_0xec66('0x22')]({'plain':!![]});if(!_0xacf377)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0xacf377[_0xec66('0x4b')]==='user'){var _0x444b8c=_0x40e737[_0xec66('0x22')]({'plain':!![]});var _0x4e610b=_0xec66('0x23');return db['UserProfileSection'][_0xec66('0x48')]({'where':{'name':_0x4e610b,'userProfileId':_0xacf377['userProfileId']},'raw':!![]})[_0xec66('0x25')](function(_0x44ed13){if(_0x44ed13&&_0x44ed13[_0xec66('0x4c')]===0x0){return db[_0xec66('0x24')][_0xec66('0x49')]({'name':_0x444b8c['name'],'resourceId':_0x444b8c['id'],'type':_0x44ed13[_0xec66('0x2a')],'sectionId':_0x44ed13['id']},{})['then'](function(){return _0x40e737;});}else{return _0x40e737;}})[_0xec66('0x44')](function(_0x53915e){logger[_0xec66('0x28')](_0xec66('0x4d'),_0x53915e);throw _0x53915e;});}return _0x40e737;})[_0xec66('0x25')](respondWithResult(_0x43a0c5,0xc9))['catch'](handleError(_0x43a0c5,null));};exports[_0xec66('0x20')]=function(_0x1c94ec,_0x133451){if(_0x1c94ec['body']['id']){delete _0x1c94ec['body']['id'];}return db[_0xec66('0x2d')]['find']({'where':{'id':_0x1c94ec[_0xec66('0x45')]['id']}})[_0xec66('0x25')](handleEntityNotFound(_0x133451,null))[_0xec66('0x25')](saveUpdates(_0x1c94ec[_0xec66('0x4a')],null))[_0xec66('0x25')](respondWithResult(_0x133451,null))[_0xec66('0x44')](handleError(_0x133451,null));};exports[_0xec66('0x21')]=function(_0x58a9ec,_0x49455b){return db['VoiceMail']['find']({'where':{'id':_0x58a9ec[_0xec66('0x45')]['id']}})[_0xec66('0x25')](handleEntityNotFound(_0x49455b,null))[_0xec66('0x25')](removeEntity(_0x49455b,null))[_0xec66('0x44')](handleError(_0x49455b,null));};exports[_0xec66('0x4e')]=function(_0x2d14a1,_0xfb32ab,_0x2e1cf7){return db['VoiceMail'][_0xec66('0x4f')]({'where':{'id':_0x2d14a1[_0xec66('0x45')]['id']}})['then'](handleEntityNotFound(_0xfb32ab,null))['then'](function(_0x17ecda){var _0x32682e;var _0x55c136={},_0x3f0cbf={};_0x3f0cbf[_0xec66('0x2f')]=_['keys'](db[_0xec66('0x50')][_0xec66('0x46')]);_0x3f0cbf[_0xec66('0x31')]=_[_0xec66('0x30')](_0x2d14a1[_0xec66('0x31')]);_0x3f0cbf['filters']=_['intersection'](_0x3f0cbf[_0xec66('0x2f')],_0x3f0cbf[_0xec66('0x31')]);_0x55c136['attributes']=_['intersection'](_0x3f0cbf[_0xec66('0x2f')],qs[_0xec66('0x34')](_0x2d14a1[_0xec66('0x31')][_0xec66('0x34')]));_0x55c136[_0xec66('0x33')]=_0x55c136['attributes']['length']?_0x55c136['attributes']:_0x3f0cbf['model'];if(!_0x2d14a1[_0xec66('0x31')][_0xec66('0x51')](_0xec66('0x36'))){_0x55c136[_0xec66('0x1a')]=qs[_0xec66('0x1a')](_0x2d14a1[_0xec66('0x31')][_0xec66('0x1a')]);_0x55c136[_0xec66('0x19')]=qs[_0xec66('0x19')](_0x2d14a1[_0xec66('0x31')][_0xec66('0x19')]);}_0x55c136[_0xec66('0x37')]=qs[_0xec66('0x38')](_0x2d14a1['query'][_0xec66('0x38')]);_0x55c136[_0xec66('0x39')]=qs[_0xec66('0x3a')](_[_0xec66('0x3b')](_0x2d14a1[_0xec66('0x31')],_0x3f0cbf['filters']));if(_0x2d14a1[_0xec66('0x31')][_0xec66('0x3f')]){_0x55c136['where']=_[_0xec66('0x3c')](_0x55c136['where'],{'$or':_[_0xec66('0x2c')](_0x55c136['attributes'],function(_0x28778f){var _0x1c9877={};_0x1c9877[_0x28778f]={'$like':'%'+_0x2d14a1[_0xec66('0x31')][_0xec66('0x3f')]+'%'};return _0x1c9877;})});}_0x55c136['where']=_[_0xec66('0x3c')](_0x55c136[_0xec66('0x39')],{'mailboxuser':_0x17ecda['mailbox']});_0x55c136=_[_0xec66('0x3c')]({},_0x55c136,_0x2d14a1[_0xec66('0x40')]);return db['VoiceMailMessage'][_0xec66('0x52')](_0x55c136)[_0xec66('0x25')](respondWithFilteredResult(_0xfb32ab,_0x55c136));})['catch'](handleError(_0xfb32ab,null));};