Built motion from commit (unavailable).|2.5.24
[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 _0x46c1=['keys','query','filters','intersection','model','fields','attributes','length','hasOwnProperty','nolimit','limit','order','sort','where','filter','merge','VIRTUAL','include','findAll','rows','catch','show','params','includeAll','find','create','body','user','UserProfileSection','autoAssociation','getMessages','findOne','pick','mailbox','options','VoiceMailMessage','findAndCountAll','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','lodash','squel','crypto','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','json','count','offset','status','set','Content-Range','apply','reject','update','then','destroy','get','Voicemails','UserProfileResource','error','stack','name','index','map','VoiceMail','rawAttributes','fieldName','type','key'];(function(_0x118f45,_0x368035){var _0x4250ab=function(_0x4abfa4){while(--_0x4abfa4){_0x118f45['push'](_0x118f45['shift']());}};_0x4250ab(++_0x368035);}(_0x46c1,0x7c));var _0x146c=function(_0x2edf9e,_0x4f1203){_0x2edf9e=_0x2edf9e-0x0;var _0x33a6b1=_0x46c1[_0x2edf9e];return _0x33a6b1;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x146c('0x0'));var rimraf=require(_0x146c('0x1'));var zipdir=require(_0x146c('0x2'));var jsonpatch=require(_0x146c('0x3'));var rp=require(_0x146c('0x4'));var moment=require('moment');var BPromise=require(_0x146c('0x5'));var Mustache=require(_0x146c('0x6'));var util=require(_0x146c('0x7'));var path=require(_0x146c('0x8'));var sox=require(_0x146c('0x9'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var _=require(_0x146c('0xa'));var squel=require(_0x146c('0xb'));var crypto=require(_0x146c('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x146c('0xd'));var toCsv=require('to-csv');var querystring=require(_0x146c('0xe'));var Papa=require(_0x146c('0xf'));var Redis=require('ioredis');var authService=require(_0x146c('0x10'));var qs=require(_0x146c('0x11'));var as=require(_0x146c('0x12'));var hardwareService=require(_0x146c('0x13'));var logger=require('../../config/logger')(_0x146c('0x14'));var utils=require('../../config/utils');var config=require(_0x146c('0x15'));var licenseUtil=require(_0x146c('0x16'));var db=require(_0x146c('0x17'))['db'];function respondWithStatusCode(_0x5c661e,_0xae68cf){_0xae68cf=_0xae68cf||0xcc;return function(_0x5921d3){if(_0x5921d3){return _0x5c661e[_0x146c('0x18')](_0xae68cf);}return _0x5c661e['status'](_0xae68cf)[_0x146c('0x19')]();};}function respondWithResult(_0x138063,_0xc9bd2d){_0xc9bd2d=_0xc9bd2d||0xc8;return function(_0x1cd513){if(_0x1cd513){return _0x138063['status'](_0xc9bd2d)[_0x146c('0x1a')](_0x1cd513);}};}function respondWithFilteredResult(_0xa535fd,_0x552524){return function(_0x25a3b3){if(_0x25a3b3){var _0x50bdae=_0x25a3b3[_0x146c('0x1b')],_0x4a554b=_0x552524[_0x146c('0x1c')],_0x15aaf4=_0x552524[_0x146c('0x1c')]+_0x552524['limit'],_0x512ac8;if(_0x15aaf4>=_0x50bdae){_0x15aaf4=_0x50bdae;_0x512ac8=0xc8;}else{_0x512ac8=0xce;}_0xa535fd[_0x146c('0x1d')](_0x512ac8);return _0xa535fd[_0x146c('0x1e')](_0x146c('0x1f'),_0x4a554b+'-'+_0x15aaf4+'/'+_0x50bdae)[_0x146c('0x1a')](_0x25a3b3);}return null;};}function patchUpdates(_0x3e8c2b){return function(_0x3d469f){try{jsonpatch[_0x146c('0x20')](_0x3d469f,_0x3e8c2b,!![]);}catch(_0x2e8fe1){return BPromise[_0x146c('0x21')](_0x2e8fe1);}return _0x3d469f['save']();};}function saveUpdates(_0x1b33f2,_0x2c44b5){return function(_0x2d157c){if(_0x2d157c){return _0x2d157c[_0x146c('0x22')](_0x1b33f2)[_0x146c('0x23')](function(_0x48e2e2){return _0x48e2e2;});}return null;};}function removeEntity(_0x5b5ada,_0x1dfd0f){return function(_0x26f5ed){if(_0x26f5ed){return _0x26f5ed[_0x146c('0x24')]()[_0x146c('0x23')](function(){var _0x4c6d56=_0x26f5ed[_0x146c('0x25')]({'plain':!![]});var _0x3ee8d7=_0x146c('0x26');return db[_0x146c('0x27')][_0x146c('0x24')]({'where':{'type':_0x3ee8d7,'resourceId':_0x4c6d56['id']}})['then'](function(){return _0x26f5ed;});})['then'](function(){_0x5b5ada[_0x146c('0x1d')](0xcc)[_0x146c('0x19')]();});}};}function handleEntityNotFound(_0x393e6c,_0x46c83c){return function(_0x4eef57){if(!_0x4eef57){_0x393e6c[_0x146c('0x18')](0x194);}return _0x4eef57;};}function handleError(_0x2a3cde,_0x4260f1){_0x4260f1=_0x4260f1||0x1f4;return function(_0x3ad5fb){logger[_0x146c('0x28')](_0x3ad5fb[_0x146c('0x29')]);if(_0x3ad5fb[_0x146c('0x2a')]){delete _0x3ad5fb[_0x146c('0x2a')];}_0x2a3cde[_0x146c('0x1d')](_0x4260f1)['send'](_0x3ad5fb);};}exports[_0x146c('0x2b')]=function(_0x566d90,_0x5c44ef){var _0x3a88f9={},_0x46480c={},_0x2c4212={'count':0x0,'rows':[]};var _0x4533ee=_[_0x146c('0x2c')](db[_0x146c('0x2d')][_0x146c('0x2e')],function(_0x137f4c){return{'name':_0x137f4c[_0x146c('0x2f')],'type':_0x137f4c[_0x146c('0x30')][_0x146c('0x31')]};});_0x46480c['model']=_[_0x146c('0x2c')](_0x4533ee,_0x146c('0x2a'));_0x46480c['query']=_[_0x146c('0x32')](_0x566d90[_0x146c('0x33')]);_0x46480c[_0x146c('0x34')]=_[_0x146c('0x35')](_0x46480c[_0x146c('0x36')],_0x46480c['query']);_0x3a88f9['attributes']=_[_0x146c('0x35')](_0x46480c[_0x146c('0x36')],qs[_0x146c('0x37')](_0x566d90[_0x146c('0x33')][_0x146c('0x37')]));_0x3a88f9['attributes']=_0x3a88f9[_0x146c('0x38')][_0x146c('0x39')]?_0x3a88f9[_0x146c('0x38')]:_0x46480c[_0x146c('0x36')];if(!_0x566d90['query'][_0x146c('0x3a')](_0x146c('0x3b'))){_0x3a88f9[_0x146c('0x3c')]=qs[_0x146c('0x3c')](_0x566d90[_0x146c('0x33')][_0x146c('0x3c')]);_0x3a88f9[_0x146c('0x1c')]=qs[_0x146c('0x1c')](_0x566d90[_0x146c('0x33')][_0x146c('0x1c')]);}_0x3a88f9[_0x146c('0x3d')]=qs[_0x146c('0x3e')](_0x566d90[_0x146c('0x33')][_0x146c('0x3e')]);_0x3a88f9[_0x146c('0x3f')]=qs[_0x146c('0x34')](_['pick'](_0x566d90[_0x146c('0x33')],_0x46480c['filters']),_0x4533ee);if(_0x566d90[_0x146c('0x33')][_0x146c('0x40')]){_0x3a88f9['where']=_[_0x146c('0x41')](_0x3a88f9['where'],{'$or':_['map'](_0x4533ee,function(_0x406592){if(_0x406592[_0x146c('0x30')]!==_0x146c('0x42')){var _0x94538e={};_0x94538e[_0x406592[_0x146c('0x2a')]]={'$like':'%'+_0x566d90['query'][_0x146c('0x40')]+'%'};return _0x94538e;}})});}_0x3a88f9=_[_0x146c('0x41')]({},_0x3a88f9,_0x566d90['options']);var _0x20b998={'where':_0x3a88f9[_0x146c('0x3f')]};return db[_0x146c('0x2d')][_0x146c('0x1b')](_0x20b998)[_0x146c('0x23')](function(_0xf0ef19){_0x2c4212[_0x146c('0x1b')]=_0xf0ef19;if(_0x566d90[_0x146c('0x33')]['includeAll']){_0x3a88f9[_0x146c('0x43')]=[{'all':!![]}];}return db[_0x146c('0x2d')][_0x146c('0x44')](_0x3a88f9);})[_0x146c('0x23')](function(_0x3dc3e2){_0x2c4212[_0x146c('0x45')]=_0x3dc3e2;return _0x2c4212;})[_0x146c('0x23')](respondWithFilteredResult(_0x5c44ef,_0x3a88f9))[_0x146c('0x46')](handleError(_0x5c44ef,null));};exports[_0x146c('0x47')]=function(_0x29149a,_0x58d7ec){var _0x15693d={'raw':!![],'where':{'id':_0x29149a[_0x146c('0x48')]['id']}},_0x1c8927={};_0x1c8927['model']=_[_0x146c('0x32')](db[_0x146c('0x2d')][_0x146c('0x2e')]);_0x1c8927['query']=_[_0x146c('0x32')](_0x29149a[_0x146c('0x33')]);_0x1c8927['filters']=_[_0x146c('0x35')](_0x1c8927[_0x146c('0x36')],_0x1c8927[_0x146c('0x33')]);_0x15693d[_0x146c('0x38')]=_[_0x146c('0x35')](_0x1c8927['model'],qs['fields'](_0x29149a[_0x146c('0x33')]['fields']));_0x15693d[_0x146c('0x38')]=_0x15693d[_0x146c('0x38')][_0x146c('0x39')]?_0x15693d['attributes']:_0x1c8927[_0x146c('0x36')];if(_0x29149a[_0x146c('0x33')][_0x146c('0x49')]){_0x15693d[_0x146c('0x43')]=[{'all':!![]}];}_0x15693d=_[_0x146c('0x41')]({},_0x15693d,_0x29149a['options']);return db['VoiceMail'][_0x146c('0x4a')](_0x15693d)[_0x146c('0x23')](handleEntityNotFound(_0x58d7ec,null))[_0x146c('0x23')](respondWithResult(_0x58d7ec,null))[_0x146c('0x46')](handleError(_0x58d7ec,null));};exports[_0x146c('0x4b')]=function(_0x433326,_0x499eaa){return db[_0x146c('0x2d')]['create'](_0x433326[_0x146c('0x4c')],{})[_0x146c('0x23')](function(_0x5a6e88){var _0x58f581=_0x433326[_0x146c('0x4d')]['get']({'plain':!![]});if(!_0x58f581)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x58f581['role']===_0x146c('0x4d')){var _0xb37756=_0x5a6e88[_0x146c('0x25')]({'plain':!![]});var _0x21c1ad='Voicemails';return db[_0x146c('0x4e')][_0x146c('0x4a')]({'where':{'name':_0x21c1ad,'userProfileId':_0x58f581['userProfileId']},'raw':!![]})[_0x146c('0x23')](function(_0x3443f0){if(_0x3443f0&&_0x3443f0[_0x146c('0x4f')]===0x0){return db[_0x146c('0x27')][_0x146c('0x4b')]({'name':_0xb37756[_0x146c('0x2a')],'resourceId':_0xb37756['id'],'type':_0x3443f0[_0x146c('0x2a')],'sectionId':_0x3443f0['id']},{})['then'](function(){return _0x5a6e88;});}else{return _0x5a6e88;}})['catch'](function(_0x52bf40){logger[_0x146c('0x28')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x52bf40);throw _0x52bf40;});}return _0x5a6e88;})[_0x146c('0x23')](respondWithResult(_0x499eaa,0xc9))[_0x146c('0x46')](handleError(_0x499eaa,null));};exports[_0x146c('0x22')]=function(_0x4023ba,_0x40692d){if(_0x4023ba[_0x146c('0x4c')]['id']){delete _0x4023ba[_0x146c('0x4c')]['id'];}return db[_0x146c('0x2d')]['find']({'where':{'id':_0x4023ba['params']['id']}})['then'](handleEntityNotFound(_0x40692d,null))[_0x146c('0x23')](saveUpdates(_0x4023ba['body'],null))['then'](respondWithResult(_0x40692d,null))[_0x146c('0x46')](handleError(_0x40692d,null));};exports[_0x146c('0x24')]=function(_0x130667,_0x4f9aba){return db['VoiceMail']['find']({'where':{'id':_0x130667[_0x146c('0x48')]['id']}})[_0x146c('0x23')](handleEntityNotFound(_0x4f9aba,null))[_0x146c('0x23')](removeEntity(_0x4f9aba,null))[_0x146c('0x46')](handleError(_0x4f9aba,null));};exports[_0x146c('0x50')]=function(_0x3e8101,_0x587d07,_0x5aedf1){return db[_0x146c('0x2d')][_0x146c('0x51')]({'where':{'id':_0x3e8101['params']['id']}})['then'](handleEntityNotFound(_0x587d07,null))[_0x146c('0x23')](function(_0x55f0d3){var _0x410808;var _0x470747={},_0x12f202={};_0x12f202[_0x146c('0x36')]=_[_0x146c('0x32')](db['VoiceMailMessage'][_0x146c('0x2e')]);_0x12f202[_0x146c('0x33')]=_[_0x146c('0x32')](_0x3e8101[_0x146c('0x33')]);_0x12f202[_0x146c('0x34')]=_['intersection'](_0x12f202['model'],_0x12f202[_0x146c('0x33')]);_0x470747['attributes']=_[_0x146c('0x35')](_0x12f202['model'],qs[_0x146c('0x37')](_0x3e8101[_0x146c('0x33')]['fields']));_0x470747[_0x146c('0x38')]=_0x470747[_0x146c('0x38')][_0x146c('0x39')]?_0x470747[_0x146c('0x38')]:_0x12f202[_0x146c('0x36')];if(!_0x3e8101[_0x146c('0x33')]['hasOwnProperty'](_0x146c('0x3b'))){_0x470747[_0x146c('0x3c')]=qs[_0x146c('0x3c')](_0x3e8101[_0x146c('0x33')]['limit']);_0x470747['offset']=qs[_0x146c('0x1c')](_0x3e8101[_0x146c('0x33')][_0x146c('0x1c')]);}_0x470747[_0x146c('0x3d')]=qs[_0x146c('0x3e')](_0x3e8101['query'][_0x146c('0x3e')]);_0x470747[_0x146c('0x3f')]=qs[_0x146c('0x34')](_[_0x146c('0x52')](_0x3e8101[_0x146c('0x33')],_0x12f202[_0x146c('0x34')]));if(_0x3e8101['query'][_0x146c('0x40')]){_0x470747['where']=_[_0x146c('0x41')](_0x470747[_0x146c('0x3f')],{'$or':_['map'](_0x470747['attributes'],function(_0x399bda){var _0x2ba6e6={};_0x2ba6e6[_0x399bda]={'$like':'%'+_0x3e8101[_0x146c('0x33')][_0x146c('0x40')]+'%'};return _0x2ba6e6;})});}_0x470747['where']=_['merge'](_0x470747['where'],{'mailboxuser':_0x55f0d3[_0x146c('0x53')]});_0x470747=_[_0x146c('0x41')]({},_0x470747,_0x3e8101[_0x146c('0x54')]);return db[_0x146c('0x55')][_0x146c('0x56')](_0x470747)['then'](respondWithFilteredResult(_0x587d07,_0x470747));})[_0x146c('0x46')](handleError(_0x587d07,null));};