b1c2cd9ec9d32cb3e93052d71bc21afc9985d108
[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 _0xb740=['ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/environment','../../mysqldb','status','end','offset','set','Content-Range','json','apply','save','then','destroy','get','Voicemails','stack','name','send','index','map','VoiceMail','rawAttributes','type','model','keys','filters','attributes','fields','length','hasOwnProperty','nolimit','limit','query','order','sort','where','filter','merge','VIRTUAL','options','count','includeAll','findAll','rows','catch','show','params','intersection','include','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','error','getMessages','findOne','VoiceMailMessage','pick','mailbox','findAndCountAll','eml-format','rimraf','zip-dir','request-promise','bluebird','mustache','path','sox','to-csv','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse'];(function(_0x553943,_0x30ab80){var _0x50fe81=function(_0x652772){while(--_0x652772){_0x553943['push'](_0x553943['shift']());}};_0x50fe81(++_0x30ab80);}(_0xb740,0x9c));var _0x0b74=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xb740[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require(_0x0b74('0x0'));var rimraf=require(_0x0b74('0x1'));var zipdir=require(_0x0b74('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x0b74('0x3'));var moment=require('moment');var BPromise=require(_0x0b74('0x4'));var Mustache=require(_0x0b74('0x5'));var util=require('util');var path=require(_0x0b74('0x6'));var sox=require(_0x0b74('0x7'));var csv=require(_0x0b74('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x0b74('0x9'));var _=require(_0x0b74('0xa'));var squel=require('squel');var crypto=require(_0x0b74('0xb'));var jsforce=require(_0x0b74('0xc'));var deskjs=require(_0x0b74('0xd'));var toCsv=require(_0x0b74('0x8'));var querystring=require(_0x0b74('0xe'));var Papa=require(_0x0b74('0xf'));var Redis=require(_0x0b74('0x10'));var authService=require('../../components/auth/service');var qs=require(_0x0b74('0x11'));var as=require(_0x0b74('0x12'));var hardwareService=require(_0x0b74('0x13'));var logger=require('../../config/logger')(_0x0b74('0x14'));var utils=require('../../config/utils');var config=require(_0x0b74('0x15'));var licenseUtil=require('../../config/license/util');var db=require(_0x0b74('0x16'))['db'];function respondWithStatusCode(_0x4886d8,_0x437153){_0x437153=_0x437153||0xcc;return function(_0x4c6947){if(_0x4c6947){return _0x4886d8['sendStatus'](_0x437153);}return _0x4886d8[_0x0b74('0x17')](_0x437153)[_0x0b74('0x18')]();};}function respondWithResult(_0x1539b3,_0x21d760){_0x21d760=_0x21d760||0xc8;return function(_0x157ea1){if(_0x157ea1){return _0x1539b3[_0x0b74('0x17')](_0x21d760)['json'](_0x157ea1);}};}function respondWithFilteredResult(_0x18415f,_0x192c1c){return function(_0x470162){if(_0x470162){var _0x2935c9=_0x470162['count'],_0x296f23=_0x192c1c['offset'],_0x1f33ec=_0x192c1c[_0x0b74('0x19')]+_0x192c1c['limit'],_0x1a7799;if(_0x1f33ec>=_0x2935c9){_0x1f33ec=_0x2935c9;_0x1a7799=0xc8;}else{_0x1a7799=0xce;}_0x18415f[_0x0b74('0x17')](_0x1a7799);return _0x18415f[_0x0b74('0x1a')](_0x0b74('0x1b'),_0x296f23+'-'+_0x1f33ec+'/'+_0x2935c9)[_0x0b74('0x1c')](_0x470162);}return null;};}function patchUpdates(_0x17a156){return function(_0x20dd3e){try{jsonpatch[_0x0b74('0x1d')](_0x20dd3e,_0x17a156,!![]);}catch(_0x4fcad){return BPromise['reject'](_0x4fcad);}return _0x20dd3e[_0x0b74('0x1e')]();};}function saveUpdates(_0x2c7703,_0x25a026){return function(_0x2e39de){if(_0x2e39de){return _0x2e39de['update'](_0x2c7703)[_0x0b74('0x1f')](function(_0x1e1751){return _0x1e1751;});}return null;};}function removeEntity(_0x1c8578,_0x1f925a){return function(_0x22afab){if(_0x22afab){return _0x22afab[_0x0b74('0x20')]()[_0x0b74('0x1f')](function(){var _0x502169=_0x22afab[_0x0b74('0x21')]({'plain':!![]});var _0xd73431=_0x0b74('0x22');return db['UserProfileResource'][_0x0b74('0x20')]({'where':{'type':_0xd73431,'resourceId':_0x502169['id']}})['then'](function(){return _0x22afab;});})['then'](function(){_0x1c8578[_0x0b74('0x17')](0xcc)[_0x0b74('0x18')]();});}};}function handleEntityNotFound(_0x3a1ec9,_0x712aa9){return function(_0x7e7d9c){if(!_0x7e7d9c){_0x3a1ec9['sendStatus'](0x194);}return _0x7e7d9c;};}function handleError(_0x14e6ab,_0x1d07d6){_0x1d07d6=_0x1d07d6||0x1f4;return function(_0xbc4695){logger['error'](_0xbc4695[_0x0b74('0x23')]);if(_0xbc4695['name']){delete _0xbc4695[_0x0b74('0x24')];}_0x14e6ab[_0x0b74('0x17')](_0x1d07d6)[_0x0b74('0x25')](_0xbc4695);};}exports[_0x0b74('0x26')]=function(_0x37e965,_0x1ff5f3){var _0xe4c3de={},_0x23275a={},_0x316237={'count':0x0,'rows':[]};var _0x5de6b1=_[_0x0b74('0x27')](db[_0x0b74('0x28')][_0x0b74('0x29')],function(_0x4f3689){return{'name':_0x4f3689['fieldName'],'type':_0x4f3689[_0x0b74('0x2a')]['key']};});_0x23275a[_0x0b74('0x2b')]=_[_0x0b74('0x27')](_0x5de6b1,'name');_0x23275a['query']=_[_0x0b74('0x2c')](_0x37e965['query']);_0x23275a[_0x0b74('0x2d')]=_['intersection'](_0x23275a[_0x0b74('0x2b')],_0x23275a['query']);_0xe4c3de[_0x0b74('0x2e')]=_['intersection'](_0x23275a['model'],qs[_0x0b74('0x2f')](_0x37e965['query'][_0x0b74('0x2f')]));_0xe4c3de[_0x0b74('0x2e')]=_0xe4c3de[_0x0b74('0x2e')][_0x0b74('0x30')]?_0xe4c3de[_0x0b74('0x2e')]:_0x23275a[_0x0b74('0x2b')];if(!_0x37e965['query'][_0x0b74('0x31')](_0x0b74('0x32'))){_0xe4c3de['limit']=qs[_0x0b74('0x33')](_0x37e965[_0x0b74('0x34')]['limit']);_0xe4c3de[_0x0b74('0x19')]=qs[_0x0b74('0x19')](_0x37e965[_0x0b74('0x34')]['offset']);}_0xe4c3de[_0x0b74('0x35')]=qs[_0x0b74('0x36')](_0x37e965[_0x0b74('0x34')][_0x0b74('0x36')]);_0xe4c3de[_0x0b74('0x37')]=qs[_0x0b74('0x2d')](_['pick'](_0x37e965[_0x0b74('0x34')],_0x23275a['filters']),_0x5de6b1);if(_0x37e965['query'][_0x0b74('0x38')]){_0xe4c3de[_0x0b74('0x37')]=_[_0x0b74('0x39')](_0xe4c3de[_0x0b74('0x37')],{'$or':_['map'](_0x5de6b1,function(_0x3a2246){if(_0x3a2246[_0x0b74('0x2a')]!==_0x0b74('0x3a')){var _0x2607f1={};_0x2607f1[_0x3a2246['name']]={'$like':'%'+_0x37e965[_0x0b74('0x34')][_0x0b74('0x38')]+'%'};return _0x2607f1;}})});}_0xe4c3de=_[_0x0b74('0x39')]({},_0xe4c3de,_0x37e965[_0x0b74('0x3b')]);var _0x730a31={'where':_0xe4c3de['where']};return db[_0x0b74('0x28')][_0x0b74('0x3c')](_0x730a31)['then'](function(_0x2afc80){_0x316237[_0x0b74('0x3c')]=_0x2afc80;if(_0x37e965[_0x0b74('0x34')][_0x0b74('0x3d')]){_0xe4c3de['include']=[{'all':!![]}];}return db[_0x0b74('0x28')][_0x0b74('0x3e')](_0xe4c3de);})[_0x0b74('0x1f')](function(_0x5e4a80){_0x316237[_0x0b74('0x3f')]=_0x5e4a80;return _0x316237;})[_0x0b74('0x1f')](respondWithFilteredResult(_0x1ff5f3,_0xe4c3de))[_0x0b74('0x40')](handleError(_0x1ff5f3,null));};exports[_0x0b74('0x41')]=function(_0x58d48e,_0x4c017c){var _0xd0eeb1={'raw':!![],'where':{'id':_0x58d48e[_0x0b74('0x42')]['id']}},_0x3512dc={};_0x3512dc[_0x0b74('0x2b')]=_[_0x0b74('0x2c')](db[_0x0b74('0x28')][_0x0b74('0x29')]);_0x3512dc[_0x0b74('0x34')]=_[_0x0b74('0x2c')](_0x58d48e[_0x0b74('0x34')]);_0x3512dc['filters']=_[_0x0b74('0x43')](_0x3512dc[_0x0b74('0x2b')],_0x3512dc[_0x0b74('0x34')]);_0xd0eeb1['attributes']=_[_0x0b74('0x43')](_0x3512dc[_0x0b74('0x2b')],qs['fields'](_0x58d48e['query'][_0x0b74('0x2f')]));_0xd0eeb1[_0x0b74('0x2e')]=_0xd0eeb1['attributes'][_0x0b74('0x30')]?_0xd0eeb1[_0x0b74('0x2e')]:_0x3512dc[_0x0b74('0x2b')];if(_0x58d48e[_0x0b74('0x34')][_0x0b74('0x3d')]){_0xd0eeb1[_0x0b74('0x44')]=[{'all':!![]}];}_0xd0eeb1=_[_0x0b74('0x39')]({},_0xd0eeb1,_0x58d48e[_0x0b74('0x3b')]);return db['VoiceMail'][_0x0b74('0x45')](_0xd0eeb1)['then'](handleEntityNotFound(_0x4c017c,null))[_0x0b74('0x1f')](respondWithResult(_0x4c017c,null))[_0x0b74('0x40')](handleError(_0x4c017c,null));};exports[_0x0b74('0x46')]=function(_0x4d1718,_0x446857){return db[_0x0b74('0x28')]['create'](_0x4d1718[_0x0b74('0x47')],{})[_0x0b74('0x1f')](function(_0x4ebcbc){var _0x17e174=_0x4d1718[_0x0b74('0x48')][_0x0b74('0x21')]({'plain':!![]});if(!_0x17e174)throw new Error(_0x0b74('0x49'));if(_0x17e174[_0x0b74('0x4a')]==='user'){var _0x55db44=_0x4ebcbc['get']({'plain':!![]});var _0x22c5c4=_0x0b74('0x22');return db[_0x0b74('0x4b')][_0x0b74('0x45')]({'where':{'name':_0x22c5c4,'userProfileId':_0x17e174[_0x0b74('0x4c')]},'raw':!![]})[_0x0b74('0x1f')](function(_0x5b812d){if(_0x5b812d&&_0x5b812d[_0x0b74('0x4d')]===0x0){return db[_0x0b74('0x4e')][_0x0b74('0x46')]({'name':_0x55db44['name'],'resourceId':_0x55db44['id'],'type':_0x5b812d[_0x0b74('0x24')],'sectionId':_0x5b812d['id']},{})['then'](function(){return _0x4ebcbc;});}else{return _0x4ebcbc;}})[_0x0b74('0x40')](function(_0x1e738c){logger[_0x0b74('0x4f')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x1e738c);throw _0x1e738c;});}return _0x4ebcbc;})[_0x0b74('0x1f')](respondWithResult(_0x446857,0xc9))[_0x0b74('0x40')](handleError(_0x446857,null));};exports['update']=function(_0x413423,_0x5c5e20){if(_0x413423[_0x0b74('0x47')]['id']){delete _0x413423[_0x0b74('0x47')]['id'];}return db['VoiceMail'][_0x0b74('0x45')]({'where':{'id':_0x413423[_0x0b74('0x42')]['id']}})[_0x0b74('0x1f')](handleEntityNotFound(_0x5c5e20,null))[_0x0b74('0x1f')](saveUpdates(_0x413423[_0x0b74('0x47')],null))[_0x0b74('0x1f')](respondWithResult(_0x5c5e20,null))[_0x0b74('0x40')](handleError(_0x5c5e20,null));};exports[_0x0b74('0x20')]=function(_0x540827,_0x436461){return db[_0x0b74('0x28')]['find']({'where':{'id':_0x540827['params']['id']}})[_0x0b74('0x1f')](handleEntityNotFound(_0x436461,null))[_0x0b74('0x1f')](removeEntity(_0x436461,null))['catch'](handleError(_0x436461,null));};exports[_0x0b74('0x50')]=function(_0x134c87,_0x4352ba,_0x4ba28b){return db['VoiceMail'][_0x0b74('0x51')]({'where':{'id':_0x134c87[_0x0b74('0x42')]['id']}})['then'](handleEntityNotFound(_0x4352ba,null))['then'](function(_0xccc439){var _0x3180f3;var _0x3c6f32={},_0x1a15dc={};_0x1a15dc[_0x0b74('0x2b')]=_[_0x0b74('0x2c')](db[_0x0b74('0x52')][_0x0b74('0x29')]);_0x1a15dc[_0x0b74('0x34')]=_[_0x0b74('0x2c')](_0x134c87[_0x0b74('0x34')]);_0x1a15dc[_0x0b74('0x2d')]=_['intersection'](_0x1a15dc[_0x0b74('0x2b')],_0x1a15dc[_0x0b74('0x34')]);_0x3c6f32[_0x0b74('0x2e')]=_[_0x0b74('0x43')](_0x1a15dc[_0x0b74('0x2b')],qs[_0x0b74('0x2f')](_0x134c87[_0x0b74('0x34')][_0x0b74('0x2f')]));_0x3c6f32[_0x0b74('0x2e')]=_0x3c6f32[_0x0b74('0x2e')][_0x0b74('0x30')]?_0x3c6f32[_0x0b74('0x2e')]:_0x1a15dc['model'];if(!_0x134c87[_0x0b74('0x34')][_0x0b74('0x31')](_0x0b74('0x32'))){_0x3c6f32[_0x0b74('0x33')]=qs[_0x0b74('0x33')](_0x134c87[_0x0b74('0x34')][_0x0b74('0x33')]);_0x3c6f32['offset']=qs[_0x0b74('0x19')](_0x134c87[_0x0b74('0x34')][_0x0b74('0x19')]);}_0x3c6f32[_0x0b74('0x35')]=qs[_0x0b74('0x36')](_0x134c87['query'][_0x0b74('0x36')]);_0x3c6f32[_0x0b74('0x37')]=qs[_0x0b74('0x2d')](_[_0x0b74('0x53')](_0x134c87[_0x0b74('0x34')],_0x1a15dc[_0x0b74('0x2d')]));if(_0x134c87[_0x0b74('0x34')][_0x0b74('0x38')]){_0x3c6f32['where']=_[_0x0b74('0x39')](_0x3c6f32[_0x0b74('0x37')],{'$or':_[_0x0b74('0x27')](_0x3c6f32[_0x0b74('0x2e')],function(_0x10d495){var _0x3b6826={};_0x3b6826[_0x10d495]={'$like':'%'+_0x134c87[_0x0b74('0x34')][_0x0b74('0x38')]+'%'};return _0x3b6826;})});}_0x3c6f32['where']=_['merge'](_0x3c6f32[_0x0b74('0x37')],{'mailboxuser':_0xccc439[_0x0b74('0x54')]});_0x3c6f32=_[_0x0b74('0x39')]({},_0x3c6f32,_0x134c87['options']);return db[_0x0b74('0x52')][_0x0b74('0x55')](_0x3c6f32)['then'](respondWithFilteredResult(_0x4352ba,_0x3c6f32));})[_0x0b74('0x40')](handleError(_0x4352ba,null));};