588e84bef694ee55808dd588d22399f08270ebd5
[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 _0x9287=['body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','getMessages','findOne','VoiceMailMessage','findAndCountAll','html-pdf','eml-format','rimraf','zip-dir','moment','bluebird','mustache','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','reject','save','update','then','destroy','get','Voicemails','UserProfileResource','error','stack','name','send','VoiceMail','fieldName','type','key','model','keys','query','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','map','VIRTUAL','merge','options','findAll','rows','catch','show','params','rawAttributes','include','find','create'];(function(_0x50121f,_0x1de880){var _0x59c400=function(_0x5f0627){while(--_0x5f0627){_0x50121f['push'](_0x50121f['shift']());}};_0x59c400(++_0x1de880);}(_0x9287,0x1dc));var _0x7928=function(_0x170772,_0x1f1ee7){_0x170772=_0x170772-0x0;var _0x3ef69c=_0x9287[_0x170772];return _0x3ef69c;};'use strict';var pdf=require(_0x7928('0x0'));var emlformat=require(_0x7928('0x1'));var rimraf=require(_0x7928('0x2'));var zipdir=require(_0x7928('0x3'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x7928('0x4'));var BPromise=require(_0x7928('0x5'));var Mustache=require(_0x7928('0x6'));var util=require('util');var path=require(_0x7928('0x7'));var sox=require(_0x7928('0x8'));var csv=require(_0x7928('0x9'));var ejs=require(_0x7928('0xa'));var fs=require('fs');var _=require(_0x7928('0xb'));var squel=require(_0x7928('0xc'));var crypto=require(_0x7928('0xd'));var jsforce=require(_0x7928('0xe'));var deskjs=require(_0x7928('0xf'));var toCsv=require(_0x7928('0x9'));var querystring=require(_0x7928('0x10'));var Papa=require(_0x7928('0x11'));var Redis=require(_0x7928('0x12'));var authService=require(_0x7928('0x13'));var qs=require(_0x7928('0x14'));var as=require(_0x7928('0x15'));var hardwareService=require(_0x7928('0x16'));var logger=require(_0x7928('0x17'))(_0x7928('0x18'));var utils=require(_0x7928('0x19'));var config=require(_0x7928('0x1a'));var db=require(_0x7928('0x1b'))['db'];function respondWithStatusCode(_0x729f5d,_0x4d69d3){_0x4d69d3=_0x4d69d3||0xcc;return function(_0x12f620){if(_0x12f620){return _0x729f5d[_0x7928('0x1c')](_0x4d69d3);}return _0x729f5d[_0x7928('0x1d')](_0x4d69d3)[_0x7928('0x1e')]();};}function respondWithResult(_0xf5682,_0x4da19a){_0x4da19a=_0x4da19a||0xc8;return function(_0x11048a){if(_0x11048a){return _0xf5682[_0x7928('0x1d')](_0x4da19a)[_0x7928('0x1f')](_0x11048a);}};}function respondWithFilteredResult(_0x2d50fc,_0x155b70){return function(_0x2e1f9d){if(_0x2e1f9d){var _0x7c2e59=_0x2e1f9d[_0x7928('0x20')],_0x4c6789=_0x155b70[_0x7928('0x21')],_0x4441dd=_0x155b70[_0x7928('0x21')]+_0x155b70[_0x7928('0x22')],_0x1d7d91;if(_0x4441dd>=_0x7c2e59){_0x4441dd=_0x7c2e59;_0x1d7d91=0xc8;}else{_0x1d7d91=0xce;}_0x2d50fc[_0x7928('0x1d')](_0x1d7d91);return _0x2d50fc[_0x7928('0x23')](_0x7928('0x24'),_0x4c6789+'-'+_0x4441dd+'/'+_0x7c2e59)[_0x7928('0x1f')](_0x2e1f9d);}return null;};}function patchUpdates(_0x2e92ee){return function(_0x5e4327){try{jsonpatch[_0x7928('0x25')](_0x5e4327,_0x2e92ee,!![]);}catch(_0x39b603){return BPromise[_0x7928('0x26')](_0x39b603);}return _0x5e4327[_0x7928('0x27')]();};}function saveUpdates(_0x3cbbfe,_0x98d50f){return function(_0x1f7118){if(_0x1f7118){return _0x1f7118[_0x7928('0x28')](_0x3cbbfe)[_0x7928('0x29')](function(_0x501b9b){return _0x501b9b;});}return null;};}function removeEntity(_0x44eb5f,_0x7a195){return function(_0x4ae901){if(_0x4ae901){return _0x4ae901[_0x7928('0x2a')]()['then'](function(){var _0x4ad999=_0x4ae901[_0x7928('0x2b')]({'plain':!![]});var _0x163e00=_0x7928('0x2c');return db[_0x7928('0x2d')]['destroy']({'where':{'type':_0x163e00,'resourceId':_0x4ad999['id']}})['then'](function(){return _0x4ae901;});})[_0x7928('0x29')](function(){_0x44eb5f[_0x7928('0x1d')](0xcc)[_0x7928('0x1e')]();});}};}function handleEntityNotFound(_0x48c4fb,_0x1590fb){return function(_0x295e98){if(!_0x295e98){_0x48c4fb[_0x7928('0x1c')](0x194);}return _0x295e98;};}function handleError(_0x31177f,_0x5b27fe){_0x5b27fe=_0x5b27fe||0x1f4;return function(_0x5bda0f){logger[_0x7928('0x2e')](_0x5bda0f[_0x7928('0x2f')]);if(_0x5bda0f[_0x7928('0x30')]){delete _0x5bda0f[_0x7928('0x30')];}_0x31177f[_0x7928('0x1d')](_0x5b27fe)[_0x7928('0x31')](_0x5bda0f);};}exports['index']=function(_0x372d17,_0xfec0af){var _0x4fbd07={},_0x114e6e={},_0x4d516f={'count':0x0,'rows':[]};var _0x29bd20=_['map'](db[_0x7928('0x32')]['rawAttributes'],function(_0x5b444e){return{'name':_0x5b444e[_0x7928('0x33')],'type':_0x5b444e[_0x7928('0x34')][_0x7928('0x35')]};});_0x114e6e[_0x7928('0x36')]=_['map'](_0x29bd20,_0x7928('0x30'));_0x114e6e['query']=_[_0x7928('0x37')](_0x372d17[_0x7928('0x38')]);_0x114e6e[_0x7928('0x39')]=_['intersection'](_0x114e6e['model'],_0x114e6e[_0x7928('0x38')]);_0x4fbd07['attributes']=_[_0x7928('0x3a')](_0x114e6e[_0x7928('0x36')],qs['fields'](_0x372d17[_0x7928('0x38')][_0x7928('0x3b')]));_0x4fbd07['attributes']=_0x4fbd07[_0x7928('0x3c')][_0x7928('0x3d')]?_0x4fbd07[_0x7928('0x3c')]:_0x114e6e[_0x7928('0x36')];if(!_0x372d17['query'][_0x7928('0x3e')](_0x7928('0x3f'))){_0x4fbd07['limit']=qs[_0x7928('0x22')](_0x372d17[_0x7928('0x38')][_0x7928('0x22')]);_0x4fbd07[_0x7928('0x21')]=qs[_0x7928('0x21')](_0x372d17[_0x7928('0x38')][_0x7928('0x21')]);}_0x4fbd07[_0x7928('0x40')]=qs[_0x7928('0x41')](_0x372d17[_0x7928('0x38')][_0x7928('0x41')]);_0x4fbd07[_0x7928('0x42')]=qs[_0x7928('0x39')](_[_0x7928('0x43')](_0x372d17['query'],_0x114e6e[_0x7928('0x39')]));if(_0x372d17['query'][_0x7928('0x44')]){_0x4fbd07[_0x7928('0x42')]=_['merge'](_0x4fbd07[_0x7928('0x42')],{'$or':_[_0x7928('0x45')](_0x29bd20,function(_0x515745){if(_0x515745[_0x7928('0x34')]!==_0x7928('0x46')){var _0x3264e1={};_0x3264e1[_0x515745[_0x7928('0x30')]]={'$like':'%'+_0x372d17[_0x7928('0x38')][_0x7928('0x44')]+'%'};return _0x3264e1;}})});}_0x4fbd07=_[_0x7928('0x47')]({},_0x4fbd07,_0x372d17[_0x7928('0x48')]);var _0x14cc35={'where':_0x4fbd07['where']};return db[_0x7928('0x32')]['count'](_0x14cc35)['then'](function(_0x4dfe18){_0x4d516f[_0x7928('0x20')]=_0x4dfe18;if(_0x372d17['query']['includeAll']){_0x4fbd07['include']=[{'all':!![]}];}return db[_0x7928('0x32')][_0x7928('0x49')](_0x4fbd07);})[_0x7928('0x29')](function(_0x10023c){_0x4d516f[_0x7928('0x4a')]=_0x10023c;return _0x4d516f;})[_0x7928('0x29')](respondWithFilteredResult(_0xfec0af,_0x4fbd07))[_0x7928('0x4b')](handleError(_0xfec0af,null));};exports[_0x7928('0x4c')]=function(_0x3dfb3f,_0x1f38c0){var _0x599981={'raw':!![],'where':{'id':_0x3dfb3f[_0x7928('0x4d')]['id']}},_0x6ee46c={};_0x6ee46c[_0x7928('0x36')]=_[_0x7928('0x37')](db['VoiceMail'][_0x7928('0x4e')]);_0x6ee46c[_0x7928('0x38')]=_[_0x7928('0x37')](_0x3dfb3f[_0x7928('0x38')]);_0x6ee46c[_0x7928('0x39')]=_[_0x7928('0x3a')](_0x6ee46c[_0x7928('0x36')],_0x6ee46c[_0x7928('0x38')]);_0x599981['attributes']=_['intersection'](_0x6ee46c['model'],qs[_0x7928('0x3b')](_0x3dfb3f[_0x7928('0x38')][_0x7928('0x3b')]));_0x599981[_0x7928('0x3c')]=_0x599981[_0x7928('0x3c')][_0x7928('0x3d')]?_0x599981[_0x7928('0x3c')]:_0x6ee46c[_0x7928('0x36')];if(_0x3dfb3f[_0x7928('0x38')]['includeAll']){_0x599981[_0x7928('0x4f')]=[{'all':!![]}];}_0x599981=_[_0x7928('0x47')]({},_0x599981,_0x3dfb3f['options']);return db[_0x7928('0x32')][_0x7928('0x50')](_0x599981)['then'](handleEntityNotFound(_0x1f38c0,null))['then'](respondWithResult(_0x1f38c0,null))['catch'](handleError(_0x1f38c0,null));};exports['create']=function(_0x20b3e9,_0x57eef9){return db[_0x7928('0x32')][_0x7928('0x51')](_0x20b3e9[_0x7928('0x52')],{})[_0x7928('0x29')](function(_0x5666fc){var _0xb04bac=_0x20b3e9[_0x7928('0x53')][_0x7928('0x2b')]({'plain':!![]});if(!_0xb04bac)throw new Error(_0x7928('0x54'));if(_0xb04bac[_0x7928('0x55')]===_0x7928('0x53')){var _0x46b6cc=_0x5666fc['get']({'plain':!![]});var _0x4940b0=_0x7928('0x2c');return db[_0x7928('0x56')]['find']({'where':{'name':_0x4940b0,'userProfileId':_0xb04bac[_0x7928('0x57')]},'raw':!![]})[_0x7928('0x29')](function(_0x1751eb){if(_0x1751eb&&_0x1751eb['autoAssociation']===0x0){return db[_0x7928('0x2d')][_0x7928('0x51')]({'name':_0x46b6cc[_0x7928('0x30')],'resourceId':_0x46b6cc['id'],'type':_0x1751eb['name'],'sectionId':_0x1751eb['id']},{})[_0x7928('0x29')](function(){return _0x5666fc;});}else{return _0x5666fc;}})['catch'](function(_0x4e7db1){logger[_0x7928('0x2e')](_0x7928('0x58'),_0x4e7db1);throw _0x4e7db1;});}return _0x5666fc;})[_0x7928('0x29')](respondWithResult(_0x57eef9,0xc9))[_0x7928('0x4b')](handleError(_0x57eef9,null));};exports['update']=function(_0x4f31a0,_0x208c9a){if(_0x4f31a0[_0x7928('0x52')]['id']){delete _0x4f31a0[_0x7928('0x52')]['id'];}return db['VoiceMail']['find']({'where':{'id':_0x4f31a0[_0x7928('0x4d')]['id']}})['then'](handleEntityNotFound(_0x208c9a,null))[_0x7928('0x29')](saveUpdates(_0x4f31a0[_0x7928('0x52')],null))[_0x7928('0x29')](respondWithResult(_0x208c9a,null))['catch'](handleError(_0x208c9a,null));};exports['destroy']=function(_0x59b3a1,_0x389557){return db[_0x7928('0x32')][_0x7928('0x50')]({'where':{'id':_0x59b3a1[_0x7928('0x4d')]['id']}})[_0x7928('0x29')](handleEntityNotFound(_0x389557,null))[_0x7928('0x29')](removeEntity(_0x389557,null))[_0x7928('0x4b')](handleError(_0x389557,null));};exports[_0x7928('0x59')]=function(_0x2871b0,_0x50a8cb,_0x38b2f1){return db[_0x7928('0x32')][_0x7928('0x5a')]({'where':{'id':_0x2871b0[_0x7928('0x4d')]['id']}})[_0x7928('0x29')](handleEntityNotFound(_0x50a8cb,null))[_0x7928('0x29')](function(_0x9f3413){var _0x5bc10c;var _0x433a58={},_0x388a25={};_0x388a25[_0x7928('0x36')]=_[_0x7928('0x37')](db[_0x7928('0x5b')][_0x7928('0x4e')]);_0x388a25[_0x7928('0x38')]=_[_0x7928('0x37')](_0x2871b0[_0x7928('0x38')]);_0x388a25['filters']=_[_0x7928('0x3a')](_0x388a25[_0x7928('0x36')],_0x388a25[_0x7928('0x38')]);_0x433a58[_0x7928('0x3c')]=_['intersection'](_0x388a25[_0x7928('0x36')],qs[_0x7928('0x3b')](_0x2871b0[_0x7928('0x38')][_0x7928('0x3b')]));_0x433a58[_0x7928('0x3c')]=_0x433a58[_0x7928('0x3c')][_0x7928('0x3d')]?_0x433a58[_0x7928('0x3c')]:_0x388a25[_0x7928('0x36')];if(!_0x2871b0[_0x7928('0x38')][_0x7928('0x3e')](_0x7928('0x3f'))){_0x433a58[_0x7928('0x22')]=qs[_0x7928('0x22')](_0x2871b0[_0x7928('0x38')]['limit']);_0x433a58[_0x7928('0x21')]=qs[_0x7928('0x21')](_0x2871b0[_0x7928('0x38')]['offset']);}_0x433a58['order']=qs['sort'](_0x2871b0[_0x7928('0x38')][_0x7928('0x41')]);_0x433a58[_0x7928('0x42')]=qs['filters'](_[_0x7928('0x43')](_0x2871b0[_0x7928('0x38')],_0x388a25[_0x7928('0x39')]));if(_0x2871b0[_0x7928('0x38')][_0x7928('0x44')]){_0x433a58[_0x7928('0x42')]=_[_0x7928('0x47')](_0x433a58[_0x7928('0x42')],{'$or':_[_0x7928('0x45')](_0x433a58[_0x7928('0x3c')],function(_0x1561d1){var _0x143218={};_0x143218[_0x1561d1]={'$like':'%'+_0x2871b0[_0x7928('0x38')]['filter']+'%'};return _0x143218;})});}_0x433a58[_0x7928('0x42')]=_[_0x7928('0x47')](_0x433a58[_0x7928('0x42')],{'mailboxuser':_0x9f3413['mailbox']});_0x433a58=_[_0x7928('0x47')]({},_0x433a58,_0x2871b0[_0x7928('0x48')]);return db[_0x7928('0x5b')][_0x7928('0x5c')](_0x433a58)['then'](respondWithFilteredResult(_0x50a8cb,_0x433a58));})['catch'](handleError(_0x50a8cb,null));};