3bcef399289bde8134e5b2aa9db0214d81a0d59d
[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 _0xcde5=['count','includeAll','include','rows','catch','params','keys','fields','length','find','create','body','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','getMessages','findOne','VoiceMailMessage','rawAttributes','findAndCountAll','html-pdf','eml-format','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','sox','to-csv','lodash','squel','crypto','jsforce','desk.js','papaparse','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/environment','../../mysqldb','sendStatus','status','end','json','offset','limit','set','Content-Range','apply','reject','save','then','Voicemails','UserProfileResource','destroy','stack','name','index','map','type','key','query','filters','intersection','attributes','model','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','VoiceMail'];(function(_0x465a0c,_0x19d4d5){var _0x1e202e=function(_0x27bd8a){while(--_0x27bd8a){_0x465a0c['push'](_0x465a0c['shift']());}};_0x1e202e(++_0x19d4d5);}(_0xcde5,0x156));var _0x5cde=function(_0xf585d0,_0x4703a9){_0xf585d0=_0xf585d0-0x0;var _0x64dc76=_0xcde5[_0xf585d0];return _0x64dc76;};'use strict';var pdf=require(_0x5cde('0x0'));var emlformat=require(_0x5cde('0x1'));var rimraf=require('rimraf');var zipdir=require(_0x5cde('0x2'));var jsonpatch=require(_0x5cde('0x3'));var rp=require(_0x5cde('0x4'));var moment=require('moment');var BPromise=require(_0x5cde('0x5'));var Mustache=require(_0x5cde('0x6'));var util=require(_0x5cde('0x7'));var path=require('path');var sox=require(_0x5cde('0x8'));var csv=require(_0x5cde('0x9'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x5cde('0xa'));var squel=require(_0x5cde('0xb'));var crypto=require(_0x5cde('0xc'));var jsforce=require(_0x5cde('0xd'));var deskjs=require(_0x5cde('0xe'));var toCsv=require(_0x5cde('0x9'));var querystring=require('querystring');var Papa=require(_0x5cde('0xf'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x5cde('0x10'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x5cde('0x11'));var logger=require(_0x5cde('0x12'))('api');var utils=require('../../config/utils');var config=require(_0x5cde('0x13'));var db=require(_0x5cde('0x14'))['db'];function respondWithStatusCode(_0x2bc990,_0x2f0c0d){_0x2f0c0d=_0x2f0c0d||0xcc;return function(_0xaa8df8){if(_0xaa8df8){return _0x2bc990[_0x5cde('0x15')](_0x2f0c0d);}return _0x2bc990[_0x5cde('0x16')](_0x2f0c0d)[_0x5cde('0x17')]();};}function respondWithResult(_0x4974ac,_0x3f5fe8){_0x3f5fe8=_0x3f5fe8||0xc8;return function(_0x1375bf){if(_0x1375bf){return _0x4974ac[_0x5cde('0x16')](_0x3f5fe8)[_0x5cde('0x18')](_0x1375bf);}};}function respondWithFilteredResult(_0xcae6aa,_0x59b875){return function(_0x3f0cf0){if(_0x3f0cf0){var _0x55fd3c=_0x3f0cf0['count'],_0x43f49d=_0x59b875[_0x5cde('0x19')],_0x73e41e=_0x59b875['offset']+_0x59b875[_0x5cde('0x1a')],_0x289cfa;if(_0x73e41e>=_0x55fd3c){_0x73e41e=_0x55fd3c;_0x289cfa=0xc8;}else{_0x289cfa=0xce;}_0xcae6aa[_0x5cde('0x16')](_0x289cfa);return _0xcae6aa[_0x5cde('0x1b')](_0x5cde('0x1c'),_0x43f49d+'-'+_0x73e41e+'/'+_0x55fd3c)['json'](_0x3f0cf0);}return null;};}function patchUpdates(_0x16f8f2){return function(_0x29d5a1){try{jsonpatch[_0x5cde('0x1d')](_0x29d5a1,_0x16f8f2,!![]);}catch(_0x1dc7ab){return BPromise[_0x5cde('0x1e')](_0x1dc7ab);}return _0x29d5a1[_0x5cde('0x1f')]();};}function saveUpdates(_0x546d6e,_0x4d5502){return function(_0x291959){if(_0x291959){return _0x291959['update'](_0x546d6e)[_0x5cde('0x20')](function(_0x4ee496){return _0x4ee496;});}return null;};}function removeEntity(_0x2ec34f,_0x3e045e){return function(_0x53e85f){if(_0x53e85f){return _0x53e85f['destroy']()[_0x5cde('0x20')](function(){var _0x19fc74=_0x53e85f['get']({'plain':!![]});var _0x1c49d3=_0x5cde('0x21');return db[_0x5cde('0x22')][_0x5cde('0x23')]({'where':{'type':_0x1c49d3,'resourceId':_0x19fc74['id']}})[_0x5cde('0x20')](function(){return _0x53e85f;});})[_0x5cde('0x20')](function(){_0x2ec34f[_0x5cde('0x16')](0xcc)['end']();});}};}function handleEntityNotFound(_0x2e1ab7,_0x2c3296){return function(_0x4775d3){if(!_0x4775d3){_0x2e1ab7['sendStatus'](0x194);}return _0x4775d3;};}function handleError(_0x4ca2b7,_0x383150){_0x383150=_0x383150||0x1f4;return function(_0x2d6ecb){logger['error'](_0x2d6ecb[_0x5cde('0x24')]);if(_0x2d6ecb[_0x5cde('0x25')]){delete _0x2d6ecb[_0x5cde('0x25')];}_0x4ca2b7[_0x5cde('0x16')](_0x383150)['send'](_0x2d6ecb);};}exports[_0x5cde('0x26')]=function(_0xc270ad,_0x1fd8ae){var _0x518d17={},_0x39461c={},_0x1723d5={'count':0x0,'rows':[]};var _0x40c410=_[_0x5cde('0x27')](db['VoiceMail']['rawAttributes'],function(_0x3f1d90){return{'name':_0x3f1d90['fieldName'],'type':_0x3f1d90[_0x5cde('0x28')][_0x5cde('0x29')]};});_0x39461c['model']=_[_0x5cde('0x27')](_0x40c410,'name');_0x39461c[_0x5cde('0x2a')]=_['keys'](_0xc270ad[_0x5cde('0x2a')]);_0x39461c[_0x5cde('0x2b')]=_[_0x5cde('0x2c')](_0x39461c['model'],_0x39461c[_0x5cde('0x2a')]);_0x518d17[_0x5cde('0x2d')]=_[_0x5cde('0x2c')](_0x39461c[_0x5cde('0x2e')],qs['fields'](_0xc270ad[_0x5cde('0x2a')]['fields']));_0x518d17[_0x5cde('0x2d')]=_0x518d17[_0x5cde('0x2d')]['length']?_0x518d17['attributes']:_0x39461c[_0x5cde('0x2e')];if(!_0xc270ad[_0x5cde('0x2a')][_0x5cde('0x2f')](_0x5cde('0x30'))){_0x518d17[_0x5cde('0x1a')]=qs[_0x5cde('0x1a')](_0xc270ad[_0x5cde('0x2a')]['limit']);_0x518d17[_0x5cde('0x19')]=qs[_0x5cde('0x19')](_0xc270ad[_0x5cde('0x2a')][_0x5cde('0x19')]);}_0x518d17[_0x5cde('0x31')]=qs['sort'](_0xc270ad['query'][_0x5cde('0x32')]);_0x518d17[_0x5cde('0x33')]=qs[_0x5cde('0x2b')](_[_0x5cde('0x34')](_0xc270ad[_0x5cde('0x2a')],_0x39461c['filters']),_0x40c410);if(_0xc270ad[_0x5cde('0x2a')][_0x5cde('0x35')]){_0x518d17[_0x5cde('0x33')]=_[_0x5cde('0x36')](_0x518d17['where'],{'$or':_[_0x5cde('0x27')](_0x40c410,function(_0x57615a){if(_0x57615a[_0x5cde('0x28')]!==_0x5cde('0x37')){var _0x4b1664={};_0x4b1664[_0x57615a[_0x5cde('0x25')]]={'$like':'%'+_0xc270ad[_0x5cde('0x2a')][_0x5cde('0x35')]+'%'};return _0x4b1664;}})});}_0x518d17=_[_0x5cde('0x36')]({},_0x518d17,_0xc270ad[_0x5cde('0x38')]);var _0x582d6c={'where':_0x518d17['where']};return db[_0x5cde('0x39')]['count'](_0x582d6c)[_0x5cde('0x20')](function(_0x4378b1){_0x1723d5[_0x5cde('0x3a')]=_0x4378b1;if(_0xc270ad[_0x5cde('0x2a')][_0x5cde('0x3b')]){_0x518d17[_0x5cde('0x3c')]=[{'all':!![]}];}return db[_0x5cde('0x39')]['findAll'](_0x518d17);})[_0x5cde('0x20')](function(_0x285082){_0x1723d5[_0x5cde('0x3d')]=_0x285082;return _0x1723d5;})[_0x5cde('0x20')](respondWithFilteredResult(_0x1fd8ae,_0x518d17))[_0x5cde('0x3e')](handleError(_0x1fd8ae,null));};exports['show']=function(_0x29d570,_0x31703c){var _0x151506={'raw':!![],'where':{'id':_0x29d570[_0x5cde('0x3f')]['id']}},_0x1f9e5f={};_0x1f9e5f[_0x5cde('0x2e')]=_[_0x5cde('0x40')](db['VoiceMail']['rawAttributes']);_0x1f9e5f[_0x5cde('0x2a')]=_[_0x5cde('0x40')](_0x29d570['query']);_0x1f9e5f['filters']=_[_0x5cde('0x2c')](_0x1f9e5f[_0x5cde('0x2e')],_0x1f9e5f['query']);_0x151506[_0x5cde('0x2d')]=_[_0x5cde('0x2c')](_0x1f9e5f[_0x5cde('0x2e')],qs[_0x5cde('0x41')](_0x29d570[_0x5cde('0x2a')][_0x5cde('0x41')]));_0x151506[_0x5cde('0x2d')]=_0x151506[_0x5cde('0x2d')][_0x5cde('0x42')]?_0x151506['attributes']:_0x1f9e5f['model'];if(_0x29d570[_0x5cde('0x2a')][_0x5cde('0x3b')]){_0x151506[_0x5cde('0x3c')]=[{'all':!![]}];}_0x151506=_[_0x5cde('0x36')]({},_0x151506,_0x29d570['options']);return db['VoiceMail'][_0x5cde('0x43')](_0x151506)[_0x5cde('0x20')](handleEntityNotFound(_0x31703c,null))['then'](respondWithResult(_0x31703c,null))['catch'](handleError(_0x31703c,null));};exports[_0x5cde('0x44')]=function(_0x10f2f1,_0x14d24e){return db[_0x5cde('0x39')][_0x5cde('0x44')](_0x10f2f1[_0x5cde('0x45')],{})[_0x5cde('0x20')](function(_0x3a0d39){var _0x4f3bc2=_0x10f2f1[_0x5cde('0x46')][_0x5cde('0x47')]({'plain':!![]});if(!_0x4f3bc2)throw new Error(_0x5cde('0x48'));if(_0x4f3bc2['role']==='user'){var _0x154fc7=_0x3a0d39['get']({'plain':!![]});var _0x567bcc=_0x5cde('0x21');return db[_0x5cde('0x49')][_0x5cde('0x43')]({'where':{'name':_0x567bcc,'userProfileId':_0x4f3bc2['userProfileId']},'raw':!![]})[_0x5cde('0x20')](function(_0x381e5f){if(_0x381e5f&&_0x381e5f['autoAssociation']===0x0){return db[_0x5cde('0x22')]['create']({'name':_0x154fc7[_0x5cde('0x25')],'resourceId':_0x154fc7['id'],'type':_0x381e5f[_0x5cde('0x25')],'sectionId':_0x381e5f['id']},{})[_0x5cde('0x20')](function(){return _0x3a0d39;});}else{return _0x3a0d39;}})['catch'](function(_0xdda689){logger['error'](_0x5cde('0x4a'),_0xdda689);throw _0xdda689;});}return _0x3a0d39;})[_0x5cde('0x20')](respondWithResult(_0x14d24e,0xc9))['catch'](handleError(_0x14d24e,null));};exports['update']=function(_0x14f0a8,_0xca05bf){if(_0x14f0a8['body']['id']){delete _0x14f0a8[_0x5cde('0x45')]['id'];}return db[_0x5cde('0x39')]['find']({'where':{'id':_0x14f0a8[_0x5cde('0x3f')]['id']}})[_0x5cde('0x20')](handleEntityNotFound(_0xca05bf,null))['then'](saveUpdates(_0x14f0a8[_0x5cde('0x45')],null))[_0x5cde('0x20')](respondWithResult(_0xca05bf,null))[_0x5cde('0x3e')](handleError(_0xca05bf,null));};exports[_0x5cde('0x23')]=function(_0x23fc9f,_0x4b4ebe){return db['VoiceMail']['find']({'where':{'id':_0x23fc9f['params']['id']}})[_0x5cde('0x20')](handleEntityNotFound(_0x4b4ebe,null))[_0x5cde('0x20')](removeEntity(_0x4b4ebe,null))[_0x5cde('0x3e')](handleError(_0x4b4ebe,null));};exports[_0x5cde('0x4b')]=function(_0x397cc5,_0x4ef334,_0x5c8b03){return db[_0x5cde('0x39')][_0x5cde('0x4c')]({'where':{'id':_0x397cc5[_0x5cde('0x3f')]['id']}})[_0x5cde('0x20')](handleEntityNotFound(_0x4ef334,null))[_0x5cde('0x20')](function(_0x40c5){var _0xe759a8;var _0x21cce3={},_0x3708ed={};_0x3708ed[_0x5cde('0x2e')]=_[_0x5cde('0x40')](db[_0x5cde('0x4d')][_0x5cde('0x4e')]);_0x3708ed[_0x5cde('0x2a')]=_[_0x5cde('0x40')](_0x397cc5[_0x5cde('0x2a')]);_0x3708ed[_0x5cde('0x2b')]=_['intersection'](_0x3708ed[_0x5cde('0x2e')],_0x3708ed[_0x5cde('0x2a')]);_0x21cce3[_0x5cde('0x2d')]=_[_0x5cde('0x2c')](_0x3708ed[_0x5cde('0x2e')],qs[_0x5cde('0x41')](_0x397cc5[_0x5cde('0x2a')][_0x5cde('0x41')]));_0x21cce3['attributes']=_0x21cce3['attributes'][_0x5cde('0x42')]?_0x21cce3[_0x5cde('0x2d')]:_0x3708ed[_0x5cde('0x2e')];if(!_0x397cc5['query'][_0x5cde('0x2f')](_0x5cde('0x30'))){_0x21cce3['limit']=qs[_0x5cde('0x1a')](_0x397cc5[_0x5cde('0x2a')][_0x5cde('0x1a')]);_0x21cce3[_0x5cde('0x19')]=qs[_0x5cde('0x19')](_0x397cc5[_0x5cde('0x2a')]['offset']);}_0x21cce3[_0x5cde('0x31')]=qs[_0x5cde('0x32')](_0x397cc5['query']['sort']);_0x21cce3[_0x5cde('0x33')]=qs['filters'](_[_0x5cde('0x34')](_0x397cc5[_0x5cde('0x2a')],_0x3708ed['filters']));if(_0x397cc5[_0x5cde('0x2a')][_0x5cde('0x35')]){_0x21cce3[_0x5cde('0x33')]=_['merge'](_0x21cce3['where'],{'$or':_[_0x5cde('0x27')](_0x21cce3['attributes'],function(_0x3d75cd){var _0x83718f={};_0x83718f[_0x3d75cd]={'$like':'%'+_0x397cc5[_0x5cde('0x2a')][_0x5cde('0x35')]+'%'};return _0x83718f;})});}_0x21cce3[_0x5cde('0x33')]=_['merge'](_0x21cce3[_0x5cde('0x33')],{'mailboxuser':_0x40c5['mailbox']});_0x21cce3=_[_0x5cde('0x36')]({},_0x21cce3,_0x397cc5[_0x5cde('0x38')]);return db[_0x5cde('0x4d')][_0x5cde('0x4f')](_0x21cce3)[_0x5cde('0x20')](respondWithFilteredResult(_0x4ef334,_0x21cce3));})[_0x5cde('0x3e')](handleError(_0x4ef334,null));};