c9cf30508d4c97005e3ae05a310ea74665147e57
[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 _0x0cdc=['status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','then','destroy','get','error','stack','name','send','render','contact','message','agent','interaction','account','index','VoiceMail','rawAttributes','fieldName','type','key','model','keys','query','filters','intersection','fields','attributes','length','hasOwnProperty','order','sort','pick','filter','where','merge','map','VIRTUAL','options','include','findAll','rows','params','find','catch','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Voicemails','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','body','VoiceMailMessage','nolimit','mailbox','eml-format','rimraf','zip-dir','fast-json-patch','bluebird','mustache','util','path','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus'];(function(_0x10d244,_0x49c680){var _0x67755d=function(_0x21ea7b){while(--_0x21ea7b){_0x10d244['push'](_0x10d244['shift']());}};_0x67755d(++_0x49c680);}(_0x0cdc,0x1c0));var _0xc0cd=function(_0x59e821,_0x86c723){_0x59e821=_0x59e821-0x0;var _0x5333f6=_0x0cdc[_0x59e821];return _0x5333f6;};'use strict';var emlformat=require(_0xc0cd('0x0'));var rimraf=require(_0xc0cd('0x1'));var zipdir=require(_0xc0cd('0x2'));var jsonpatch=require(_0xc0cd('0x3'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0xc0cd('0x4'));var Mustache=require(_0xc0cd('0x5'));var util=require(_0xc0cd('0x6'));var path=require(_0xc0cd('0x7'));var sox=require('sox');var csv=require(_0xc0cd('0x8'));var ejs=require(_0xc0cd('0x9'));var fs=require('fs');var fs_extra=require(_0xc0cd('0xa'));var _=require('lodash');var squel=require(_0xc0cd('0xb'));var crypto=require(_0xc0cd('0xc'));var jsforce=require(_0xc0cd('0xd'));var deskjs=require(_0xc0cd('0xe'));var toCsv=require(_0xc0cd('0x8'));var querystring=require(_0xc0cd('0xf'));var Papa=require(_0xc0cd('0x10'));var Redis=require('ioredis');var authService=require(_0xc0cd('0x11'));var qs=require(_0xc0cd('0x12'));var as=require(_0xc0cd('0x13'));var hardwareService=require(_0xc0cd('0x14'));var logger=require(_0xc0cd('0x15'))(_0xc0cd('0x16'));var utils=require(_0xc0cd('0x17'));var config=require('../../config/environment');var licenseUtil=require(_0xc0cd('0x18'));var db=require(_0xc0cd('0x19'))['db'];function respondWithStatusCode(_0x33418c,_0x586c05){_0x586c05=_0x586c05||0xcc;return function(_0x3767b3){if(_0x3767b3){return _0x33418c[_0xc0cd('0x1a')](_0x586c05);}return _0x33418c[_0xc0cd('0x1b')](_0x586c05)[_0xc0cd('0x1c')]();};}function respondWithResult(_0x4e8515,_0x1ddeb2){_0x1ddeb2=_0x1ddeb2||0xc8;return function(_0x3435ca){if(_0x3435ca){return _0x4e8515[_0xc0cd('0x1b')](_0x1ddeb2)[_0xc0cd('0x1d')](_0x3435ca);}};}function respondWithFilteredResult(_0x39a86d,_0xd5482d){return function(_0x148ca0){if(_0x148ca0){var _0x189496=typeof _0xd5482d[_0xc0cd('0x1e')]===_0xc0cd('0x1f')&&typeof _0xd5482d[_0xc0cd('0x20')]===_0xc0cd('0x1f');var _0x21c51d=_0x148ca0[_0xc0cd('0x21')];var _0x18c7c6=_0x189496?0x0:_0xd5482d['offset'];var _0x23666a=_0x189496?_0x148ca0[_0xc0cd('0x21')]:_0xd5482d[_0xc0cd('0x1e')]+_0xd5482d[_0xc0cd('0x20')];var _0x1a4c2f;if(_0x23666a>=_0x21c51d){_0x23666a=_0x21c51d;_0x1a4c2f=0xc8;}else{_0x1a4c2f=0xce;}_0x39a86d[_0xc0cd('0x1b')](_0x1a4c2f);return _0x39a86d[_0xc0cd('0x22')](_0xc0cd('0x23'),_0x18c7c6+'-'+_0x23666a+'/'+_0x21c51d)['json'](_0x148ca0);}return null;};}function patchUpdates(_0x575dfa){return function(_0x66305f){try{jsonpatch[_0xc0cd('0x24')](_0x66305f,_0x575dfa,!![]);}catch(_0x4e3061){return BPromise[_0xc0cd('0x25')](_0x4e3061);}return _0x66305f[_0xc0cd('0x26')]();};}function saveUpdates(_0x4c0828,_0x571b34){return function(_0x3cd983){if(_0x3cd983){return _0x3cd983['update'](_0x4c0828)[_0xc0cd('0x27')](function(_0x1ed106){return _0x1ed106;});}return null;};}function removeEntity(_0x177024,_0x4495d7){return function(_0x5767f3){if(_0x5767f3){return _0x5767f3[_0xc0cd('0x28')]()[_0xc0cd('0x27')](function(){var _0x50dce6=_0x5767f3[_0xc0cd('0x29')]({'plain':!![]});var _0x18cbe7='Voicemails';return db['UserProfileResource'][_0xc0cd('0x28')]({'where':{'type':_0x18cbe7,'resourceId':_0x50dce6['id']}})[_0xc0cd('0x27')](function(){return _0x5767f3;});})['then'](function(){_0x177024[_0xc0cd('0x1b')](0xcc)['end']();});}};}function handleEntityNotFound(_0x50cf39,_0x477ba8){return function(_0x47c8b2){if(!_0x47c8b2){_0x50cf39['sendStatus'](0x194);}return _0x47c8b2;};}function handleError(_0x4932f1,_0x1cee42){_0x1cee42=_0x1cee42||0x1f4;return function(_0x14d1a2){logger[_0xc0cd('0x2a')](_0x14d1a2[_0xc0cd('0x2b')]);if(_0x14d1a2[_0xc0cd('0x2c')]){delete _0x14d1a2['name'];}_0x4932f1[_0xc0cd('0x1b')](_0x1cee42)[_0xc0cd('0x2d')](_0x14d1a2);};}function getMustacheRender(_0x4849f1,_0x8eeac1){return Mustache[_0xc0cd('0x2e')](_0x4849f1,_['merge'](_0x8eeac1['body'],{'contact':_0x8eeac1[_0xc0cd('0x2f')],'message':_0x8eeac1[_0xc0cd('0x30')],'agent':_0x8eeac1[_0xc0cd('0x31')],'interaction':_0x8eeac1[_0xc0cd('0x32')],'account':_0x8eeac1[_0xc0cd('0x33')]}))||'';}exports[_0xc0cd('0x34')]=function(_0x47c14b,_0x2df840){var _0x169fa6={},_0x181ab5={},_0x4a7e78={'count':0x0,'rows':[]};var _0x1f36fd=_['map'](db[_0xc0cd('0x35')][_0xc0cd('0x36')],function(_0x4afced){return{'name':_0x4afced[_0xc0cd('0x37')],'type':_0x4afced[_0xc0cd('0x38')][_0xc0cd('0x39')]};});_0x181ab5[_0xc0cd('0x3a')]=_['map'](_0x1f36fd,_0xc0cd('0x2c'));_0x181ab5['query']=_[_0xc0cd('0x3b')](_0x47c14b[_0xc0cd('0x3c')]);_0x181ab5[_0xc0cd('0x3d')]=_[_0xc0cd('0x3e')](_0x181ab5['model'],_0x181ab5[_0xc0cd('0x3c')]);_0x169fa6['attributes']=_[_0xc0cd('0x3e')](_0x181ab5[_0xc0cd('0x3a')],qs[_0xc0cd('0x3f')](_0x47c14b['query'][_0xc0cd('0x3f')]));_0x169fa6[_0xc0cd('0x40')]=_0x169fa6['attributes'][_0xc0cd('0x41')]?_0x169fa6[_0xc0cd('0x40')]:_0x181ab5[_0xc0cd('0x3a')];if(!_0x47c14b[_0xc0cd('0x3c')][_0xc0cd('0x42')]('nolimit')){_0x169fa6[_0xc0cd('0x20')]=qs[_0xc0cd('0x20')](_0x47c14b[_0xc0cd('0x3c')]['limit']);_0x169fa6[_0xc0cd('0x1e')]=qs['offset'](_0x47c14b[_0xc0cd('0x3c')][_0xc0cd('0x1e')]);}_0x169fa6[_0xc0cd('0x43')]=qs[_0xc0cd('0x44')](_0x47c14b['query'][_0xc0cd('0x44')]);_0x169fa6['where']=qs['filters'](_[_0xc0cd('0x45')](_0x47c14b[_0xc0cd('0x3c')],_0x181ab5['filters']),_0x1f36fd);if(_0x47c14b['query'][_0xc0cd('0x46')]){_0x169fa6[_0xc0cd('0x47')]=_[_0xc0cd('0x48')](_0x169fa6[_0xc0cd('0x47')],{'$or':_[_0xc0cd('0x49')](_0x1f36fd,function(_0x23cfa1){if(_0x23cfa1[_0xc0cd('0x38')]!==_0xc0cd('0x4a')){var _0x216f81={};_0x216f81[_0x23cfa1[_0xc0cd('0x2c')]]={'$like':'%'+_0x47c14b[_0xc0cd('0x3c')]['filter']+'%'};return _0x216f81;}})});}_0x169fa6=_['merge']({},_0x169fa6,_0x47c14b[_0xc0cd('0x4b')]);var _0x139936={'where':_0x169fa6[_0xc0cd('0x47')]};return db[_0xc0cd('0x35')]['count'](_0x139936)[_0xc0cd('0x27')](function(_0xe5b7fb){_0x4a7e78[_0xc0cd('0x21')]=_0xe5b7fb;if(_0x47c14b[_0xc0cd('0x3c')]['includeAll']){_0x169fa6[_0xc0cd('0x4c')]=[{'all':!![]}];}return db[_0xc0cd('0x35')][_0xc0cd('0x4d')](_0x169fa6);})[_0xc0cd('0x27')](function(_0x3e023f){_0x4a7e78[_0xc0cd('0x4e')]=_0x3e023f;return _0x4a7e78;})['then'](respondWithFilteredResult(_0x2df840,_0x169fa6))['catch'](handleError(_0x2df840,null));};exports['show']=function(_0x4d3930,_0x12b582){var _0x3e2683={'raw':!![],'where':{'id':_0x4d3930[_0xc0cd('0x4f')]['id']}},_0x1d7b08={};_0x1d7b08[_0xc0cd('0x3a')]=_[_0xc0cd('0x3b')](db['VoiceMail'][_0xc0cd('0x36')]);_0x1d7b08['query']=_[_0xc0cd('0x3b')](_0x4d3930['query']);_0x1d7b08[_0xc0cd('0x3d')]=_[_0xc0cd('0x3e')](_0x1d7b08[_0xc0cd('0x3a')],_0x1d7b08[_0xc0cd('0x3c')]);_0x3e2683[_0xc0cd('0x40')]=_['intersection'](_0x1d7b08[_0xc0cd('0x3a')],qs[_0xc0cd('0x3f')](_0x4d3930[_0xc0cd('0x3c')][_0xc0cd('0x3f')]));_0x3e2683[_0xc0cd('0x40')]=_0x3e2683[_0xc0cd('0x40')][_0xc0cd('0x41')]?_0x3e2683['attributes']:_0x1d7b08['model'];if(_0x4d3930['query']['includeAll']){_0x3e2683[_0xc0cd('0x4c')]=[{'all':!![]}];}_0x3e2683=_[_0xc0cd('0x48')]({},_0x3e2683,_0x4d3930[_0xc0cd('0x4b')]);return db[_0xc0cd('0x35')][_0xc0cd('0x50')](_0x3e2683)['then'](handleEntityNotFound(_0x12b582,null))['then'](respondWithResult(_0x12b582,null))[_0xc0cd('0x51')](handleError(_0x12b582,null));};exports[_0xc0cd('0x52')]=function(_0x30df2e,_0x46ec6e){return db[_0xc0cd('0x35')][_0xc0cd('0x52')](_0x30df2e['body'],{})['then'](function(_0x18ab8c){var _0x4af24c=_0x30df2e[_0xc0cd('0x53')][_0xc0cd('0x29')]({'plain':!![]});if(!_0x4af24c)throw new Error(_0xc0cd('0x54'));if(_0x4af24c[_0xc0cd('0x55')]===_0xc0cd('0x53')){var _0x42a9c4=_0x18ab8c['get']({'plain':!![]});var _0x40ee9e=_0xc0cd('0x56');return db[_0xc0cd('0x57')][_0xc0cd('0x50')]({'where':{'name':_0x40ee9e,'userProfileId':_0x4af24c[_0xc0cd('0x58')]},'raw':!![]})['then'](function(_0x3cb647){if(_0x3cb647&&_0x3cb647[_0xc0cd('0x59')]===0x0){return db[_0xc0cd('0x5a')][_0xc0cd('0x52')]({'name':_0x42a9c4['name'],'resourceId':_0x42a9c4['id'],'type':_0x3cb647['name'],'sectionId':_0x3cb647['id']},{})[_0xc0cd('0x27')](function(){return _0x18ab8c;});}else{return _0x18ab8c;}})[_0xc0cd('0x51')](function(_0x3ec415){logger[_0xc0cd('0x2a')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x3ec415);throw _0x3ec415;});}return _0x18ab8c;})[_0xc0cd('0x27')](respondWithResult(_0x46ec6e,0xc9))['catch'](handleError(_0x46ec6e,null));};exports['update']=function(_0x33ac6c,_0x230ad4){if(_0x33ac6c[_0xc0cd('0x5b')]['id']){delete _0x33ac6c[_0xc0cd('0x5b')]['id'];}return db['VoiceMail']['find']({'where':{'id':_0x33ac6c[_0xc0cd('0x4f')]['id']}})['then'](handleEntityNotFound(_0x230ad4,null))['then'](saveUpdates(_0x33ac6c['body'],null))[_0xc0cd('0x27')](respondWithResult(_0x230ad4,null))[_0xc0cd('0x51')](handleError(_0x230ad4,null));};exports[_0xc0cd('0x28')]=function(_0x5aff44,_0x53c16c){return db[_0xc0cd('0x35')][_0xc0cd('0x50')]({'where':{'id':_0x5aff44['params']['id']}})[_0xc0cd('0x27')](handleEntityNotFound(_0x53c16c,null))[_0xc0cd('0x27')](removeEntity(_0x53c16c,null))['catch'](handleError(_0x53c16c,null));};exports['getMessages']=function(_0x4e64d2,_0xfffdf9,_0x289cc4){return db[_0xc0cd('0x35')]['findOne']({'where':{'id':_0x4e64d2[_0xc0cd('0x4f')]['id']}})[_0xc0cd('0x27')](handleEntityNotFound(_0xfffdf9,null))['then'](function(_0x1c3620){var _0xddb28;var _0x56d61c={},_0xa7f92c={};_0xa7f92c['model']=_[_0xc0cd('0x3b')](db[_0xc0cd('0x5c')]['rawAttributes']);_0xa7f92c[_0xc0cd('0x3c')]=_['keys'](_0x4e64d2[_0xc0cd('0x3c')]);_0xa7f92c['filters']=_[_0xc0cd('0x3e')](_0xa7f92c['model'],_0xa7f92c[_0xc0cd('0x3c')]);_0x56d61c[_0xc0cd('0x40')]=_[_0xc0cd('0x3e')](_0xa7f92c['model'],qs[_0xc0cd('0x3f')](_0x4e64d2[_0xc0cd('0x3c')][_0xc0cd('0x3f')]));_0x56d61c['attributes']=_0x56d61c[_0xc0cd('0x40')][_0xc0cd('0x41')]?_0x56d61c[_0xc0cd('0x40')]:_0xa7f92c['model'];if(!_0x4e64d2[_0xc0cd('0x3c')][_0xc0cd('0x42')](_0xc0cd('0x5d'))){_0x56d61c[_0xc0cd('0x20')]=qs['limit'](_0x4e64d2[_0xc0cd('0x3c')]['limit']);_0x56d61c[_0xc0cd('0x1e')]=qs[_0xc0cd('0x1e')](_0x4e64d2[_0xc0cd('0x3c')][_0xc0cd('0x1e')]);}_0x56d61c[_0xc0cd('0x43')]=qs[_0xc0cd('0x44')](_0x4e64d2[_0xc0cd('0x3c')]['sort']);_0x56d61c['where']=qs[_0xc0cd('0x3d')](_[_0xc0cd('0x45')](_0x4e64d2[_0xc0cd('0x3c')],_0xa7f92c['filters']));if(_0x4e64d2[_0xc0cd('0x3c')][_0xc0cd('0x46')]){_0x56d61c['where']=_['merge'](_0x56d61c[_0xc0cd('0x47')],{'$or':_['map'](_0x56d61c[_0xc0cd('0x40')],function(_0x1ebee2){var _0x10131d={};_0x10131d[_0x1ebee2]={'$like':'%'+_0x4e64d2[_0xc0cd('0x3c')][_0xc0cd('0x46')]+'%'};return _0x10131d;})});}_0x56d61c[_0xc0cd('0x47')]=_[_0xc0cd('0x48')](_0x56d61c[_0xc0cd('0x47')],{'mailboxuser':_0x1c3620[_0xc0cd('0x5e')]});_0x56d61c=_[_0xc0cd('0x48')]({},_0x56d61c,_0x4e64d2[_0xc0cd('0x4b')]);return db['VoiceMailMessage']['findAndCountAll'](_0x56d61c)[_0xc0cd('0x27')](respondWithFilteredResult(_0xfffdf9,_0x56d61c));})['catch'](handleError(_0xfffdf9,null));};