Built motion from commit (unavailable).|2.3.4
[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 _0xc3b0=['papaparse','../../components/auth/service','../../config/license/hardware','../../config/logger','../../config/utils','../../mysqldb','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','save','then','get','Voicemails','error','stack','name','send','VoiceMail','rawAttributes','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','filter','merge','map','key','VIRTUAL','field','options','includeAll','include','findAll','catch','show','params','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','destroy','find','getMessages','findOne','VoiceMailMessage','order','findAndCountAll','html-pdf','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','querystring'];(function(_0x20ad6c,_0x1d11a8){var _0x4a818c=function(_0x1ddc77){while(--_0x1ddc77){_0x20ad6c['push'](_0x20ad6c['shift']());}};_0x4a818c(++_0x1d11a8);}(_0xc3b0,0x19d));var _0x0c3b=function(_0x1b9957,_0x2dd44e){_0x1b9957=_0x1b9957-0x0;var _0x38f172=_0xc3b0[_0x1b9957];return _0x38f172;};'use strict';var pdf=require(_0x0c3b('0x0'));var emlformat=require(_0x0c3b('0x1'));var rimraf=require(_0x0c3b('0x2'));var zipdir=require(_0x0c3b('0x3'));var jsonpatch=require('fast-json-patch');var rp=require(_0x0c3b('0x4'));var moment=require(_0x0c3b('0x5'));var BPromise=require(_0x0c3b('0x6'));var Mustache=require(_0x0c3b('0x7'));var util=require(_0x0c3b('0x8'));var path=require(_0x0c3b('0x9'));var sox=require(_0x0c3b('0xa'));var csv=require(_0x0c3b('0xb'));var ejs=require(_0x0c3b('0xc'));var fs=require('fs');var _=require(_0x0c3b('0xd'));var squel=require(_0x0c3b('0xe'));var crypto=require(_0x0c3b('0xf'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x0c3b('0x10'));var Papa=require(_0x0c3b('0x11'));var authService=require(_0x0c3b('0x12'));var hardwareService=require(_0x0c3b('0x13'));var Redis=require('ioredis');var qs=require('../../components/parsers/qs');var logger=require(_0x0c3b('0x14'))('api');var utils=require(_0x0c3b('0x15'));var config=require('../../config/environment');var db=require(_0x0c3b('0x16'))['db'];function respondWithStatusCode(_0x12333d,_0x9dbd90){_0x9dbd90=_0x9dbd90||0xcc;return function(_0x574e76){if(_0x574e76){return _0x12333d[_0x0c3b('0x17')](_0x9dbd90);}return _0x12333d[_0x0c3b('0x18')](_0x9dbd90)[_0x0c3b('0x19')]();};}function respondWithResult(_0xc2102c,_0x24ab35){_0x24ab35=_0x24ab35||0xc8;return function(_0x2a5953){if(_0x2a5953){return _0xc2102c[_0x0c3b('0x18')](_0x24ab35)[_0x0c3b('0x1a')](_0x2a5953);}};}function respondWithFilteredResult(_0x38315d,_0x14b1ce){return function(_0x245d3f){if(_0x245d3f){var _0x162f60=_0x245d3f[_0x0c3b('0x1b')],_0x57d215=_0x14b1ce['offset'],_0x11cc83=_0x14b1ce[_0x0c3b('0x1c')]+_0x14b1ce[_0x0c3b('0x1d')],_0x3833b6;if(_0x11cc83>=_0x162f60){_0x11cc83=_0x162f60;_0x3833b6=0xc8;}else{_0x3833b6=0xce;}_0x38315d[_0x0c3b('0x18')](_0x3833b6);return _0x38315d[_0x0c3b('0x1e')](_0x0c3b('0x1f'),_0x57d215+'-'+_0x11cc83+'/'+_0x162f60)[_0x0c3b('0x1a')](_0x245d3f);}return null;};}function patchUpdates(_0x2d96c4){return function(_0x463333){try{jsonpatch[_0x0c3b('0x20')](_0x463333,_0x2d96c4,!![]);}catch(_0x4198f0){return BPromise['reject'](_0x4198f0);}return _0x463333[_0x0c3b('0x21')]();};}function saveUpdates(_0x56eb3e,_0x1e70d4){return function(_0x3093e2){if(_0x3093e2){return _0x3093e2['update'](_0x56eb3e)[_0x0c3b('0x22')](function(_0x45e901){return _0x45e901;});}return null;};}function removeEntity(_0x3edcde,_0x5269d3){return function(_0x2c25b1){if(_0x2c25b1){return _0x2c25b1['destroy']()[_0x0c3b('0x22')](function(){var _0x15f9db=_0x2c25b1[_0x0c3b('0x23')]({'plain':!![]});var _0xc0cd4b=_0x0c3b('0x24');return db['UserProfileResource']['destroy']({'where':{'type':_0xc0cd4b,'resourceId':_0x15f9db['id']}})[_0x0c3b('0x22')](function(){return _0x2c25b1;});})[_0x0c3b('0x22')](function(){_0x3edcde[_0x0c3b('0x18')](0xcc)[_0x0c3b('0x19')]();});}};}function handleEntityNotFound(_0x4134bf,_0x70f0f4){return function(_0x4b288d){if(!_0x4b288d){_0x4134bf['sendStatus'](0x194);}return _0x4b288d;};}function handleError(_0x436f9e,_0x4994cb){_0x4994cb=_0x4994cb||0x1f4;return function(_0x4a35f2){logger[_0x0c3b('0x25')](_0x4a35f2[_0x0c3b('0x26')]);if(_0x4a35f2[_0x0c3b('0x27')]){delete _0x4a35f2['name'];}_0x436f9e['status'](_0x4994cb)[_0x0c3b('0x28')](_0x4a35f2);};}exports['index']=function(_0x2b523b,_0x348c8c){var _0x1595dd={},_0x21c49b={},_0x111869={'count':0x0,'rows':[]};var _0x299157=db[_0x0c3b('0x29')][_0x0c3b('0x2a')];_0x21c49b[_0x0c3b('0x2b')]=_['keys'](_0x299157);_0x21c49b['query']=_[_0x0c3b('0x2c')](_0x2b523b[_0x0c3b('0x2d')]);_0x21c49b[_0x0c3b('0x2e')]=_[_0x0c3b('0x2f')](_0x21c49b[_0x0c3b('0x2b')],_0x21c49b[_0x0c3b('0x2d')]);_0x1595dd[_0x0c3b('0x30')]=_[_0x0c3b('0x2f')](_0x21c49b[_0x0c3b('0x2b')],qs[_0x0c3b('0x31')](_0x2b523b[_0x0c3b('0x2d')][_0x0c3b('0x31')]));_0x1595dd[_0x0c3b('0x30')]=_0x1595dd[_0x0c3b('0x30')][_0x0c3b('0x32')]?_0x1595dd[_0x0c3b('0x30')]:_0x21c49b[_0x0c3b('0x2b')];if(!_0x2b523b['query'][_0x0c3b('0x33')](_0x0c3b('0x34'))){_0x1595dd['limit']=qs[_0x0c3b('0x1d')](_0x2b523b[_0x0c3b('0x2d')][_0x0c3b('0x1d')]);_0x1595dd[_0x0c3b('0x1c')]=qs[_0x0c3b('0x1c')](_0x2b523b[_0x0c3b('0x2d')]['offset']);}_0x1595dd['order']=qs[_0x0c3b('0x35')](_0x2b523b[_0x0c3b('0x2d')][_0x0c3b('0x35')]);_0x1595dd[_0x0c3b('0x36')]=qs[_0x0c3b('0x2e')](_[_0x0c3b('0x37')](_0x2b523b[_0x0c3b('0x2d')],_0x21c49b['filters']));if(_0x2b523b[_0x0c3b('0x2d')][_0x0c3b('0x38')]){_0x1595dd[_0x0c3b('0x36')]=_[_0x0c3b('0x39')](_0x1595dd[_0x0c3b('0x36')],{'$or':_[_0x0c3b('0x3a')](_0x299157,function(_0x1f965c){if(_0x1f965c['type'][_0x0c3b('0x3b')]!==_0x0c3b('0x3c')){var _0x1cd5ee={};_0x1cd5ee[_0x1f965c[_0x0c3b('0x3d')]]={'$like':'%'+_0x2b523b[_0x0c3b('0x2d')]['filter']+'%'};return _0x1cd5ee;}})});}_0x1595dd=_[_0x0c3b('0x39')]({},_0x1595dd,_0x2b523b[_0x0c3b('0x3e')]);var _0x5cce5b={'where':_0x1595dd[_0x0c3b('0x36')]};return db[_0x0c3b('0x29')][_0x0c3b('0x1b')](_0x5cce5b)[_0x0c3b('0x22')](function(_0x31e99f){_0x111869['count']=_0x31e99f;if(_0x2b523b[_0x0c3b('0x2d')][_0x0c3b('0x3f')]){_0x1595dd[_0x0c3b('0x40')]=[{'all':!![]}];}return db[_0x0c3b('0x29')][_0x0c3b('0x41')](_0x1595dd);})[_0x0c3b('0x22')](function(_0x26e07c){_0x111869['rows']=_0x26e07c;return _0x111869;})[_0x0c3b('0x22')](respondWithFilteredResult(_0x348c8c,_0x1595dd))[_0x0c3b('0x42')](handleError(_0x348c8c,null));};exports[_0x0c3b('0x43')]=function(_0x1c76e6,_0x3a43f8){var _0x538af2={'raw':!![],'where':{'id':_0x1c76e6[_0x0c3b('0x44')]['id']}},_0x39409a={};_0x39409a[_0x0c3b('0x2b')]=_[_0x0c3b('0x2c')](db[_0x0c3b('0x29')]['rawAttributes']);_0x39409a[_0x0c3b('0x2d')]=_[_0x0c3b('0x2c')](_0x1c76e6['query']);_0x39409a['filters']=_[_0x0c3b('0x2f')](_0x39409a[_0x0c3b('0x2b')],_0x39409a[_0x0c3b('0x2d')]);_0x538af2[_0x0c3b('0x30')]=_[_0x0c3b('0x2f')](_0x39409a[_0x0c3b('0x2b')],qs[_0x0c3b('0x31')](_0x1c76e6[_0x0c3b('0x2d')][_0x0c3b('0x31')]));_0x538af2['attributes']=_0x538af2[_0x0c3b('0x30')][_0x0c3b('0x32')]?_0x538af2['attributes']:_0x39409a[_0x0c3b('0x2b')];if(_0x1c76e6[_0x0c3b('0x2d')][_0x0c3b('0x3f')]){_0x538af2[_0x0c3b('0x40')]=[{'all':!![]}];}_0x538af2=_[_0x0c3b('0x39')]({},_0x538af2,_0x1c76e6[_0x0c3b('0x3e')]);return db['VoiceMail']['find'](_0x538af2)['then'](handleEntityNotFound(_0x3a43f8,null))[_0x0c3b('0x22')](respondWithResult(_0x3a43f8,null))[_0x0c3b('0x42')](handleError(_0x3a43f8,null));};exports['create']=function(_0x16cfc0,_0x56b1d3){return db[_0x0c3b('0x29')][_0x0c3b('0x45')](_0x16cfc0[_0x0c3b('0x46')],{})['then'](function(_0x38566d){var _0x4dcbdb=_0x16cfc0[_0x0c3b('0x47')][_0x0c3b('0x23')]({'plain':!![]});if(!_0x4dcbdb)throw new Error(_0x0c3b('0x48'));if(_0x4dcbdb[_0x0c3b('0x49')]==='user'){var _0x27677e=_0x38566d['get']({'plain':!![]});var _0x461f2d=_0x0c3b('0x24');return db[_0x0c3b('0x4a')]['find']({'where':{'name':_0x461f2d,'userProfileId':_0x4dcbdb[_0x0c3b('0x4b')]},'raw':!![]})[_0x0c3b('0x22')](function(_0x34073c){if(_0x34073c&&_0x34073c['autoAssociation']===0x0){return db[_0x0c3b('0x4c')]['create']({'name':_0x27677e[_0x0c3b('0x27')],'resourceId':_0x27677e['id'],'type':_0x34073c[_0x0c3b('0x27')],'sectionId':_0x34073c['id']},{})[_0x0c3b('0x22')](function(){return _0x38566d;});}else{return _0x38566d;}})['catch'](function(_0x457ae7){logger['error'](_0x0c3b('0x4d'),_0x457ae7);throw _0x457ae7;});}return _0x38566d;})[_0x0c3b('0x22')](respondWithResult(_0x56b1d3,0xc9))[_0x0c3b('0x42')](handleError(_0x56b1d3,null));};exports[_0x0c3b('0x4e')]=function(_0x40a1c9,_0x56e752){if(_0x40a1c9[_0x0c3b('0x46')]['id']){delete _0x40a1c9[_0x0c3b('0x46')]['id'];}return db[_0x0c3b('0x29')]['find']({'where':{'id':_0x40a1c9[_0x0c3b('0x44')]['id']}})[_0x0c3b('0x22')](handleEntityNotFound(_0x56e752,null))['then'](saveUpdates(_0x40a1c9[_0x0c3b('0x46')],null))[_0x0c3b('0x22')](respondWithResult(_0x56e752,null))[_0x0c3b('0x42')](handleError(_0x56e752,null));};exports[_0x0c3b('0x4f')]=function(_0xc3ded,_0x16825a){return db[_0x0c3b('0x29')][_0x0c3b('0x50')]({'where':{'id':_0xc3ded[_0x0c3b('0x44')]['id']}})['then'](handleEntityNotFound(_0x16825a,null))['then'](removeEntity(_0x16825a,null))[_0x0c3b('0x42')](handleError(_0x16825a,null));};exports[_0x0c3b('0x51')]=function(_0xed4c55,_0x3d8468,_0x3b0e36){return db[_0x0c3b('0x29')][_0x0c3b('0x52')]({'where':{'id':_0xed4c55['params']['id']}})['then'](handleEntityNotFound(_0x3d8468,null))[_0x0c3b('0x22')](function(_0x3af044){var _0x52dbdb;var _0x12d233={},_0x3a32b9={};_0x3a32b9[_0x0c3b('0x2b')]=_[_0x0c3b('0x2c')](db[_0x0c3b('0x53')][_0x0c3b('0x2a')]);_0x3a32b9[_0x0c3b('0x2d')]=_['keys'](_0xed4c55['query']);_0x3a32b9[_0x0c3b('0x2e')]=_[_0x0c3b('0x2f')](_0x3a32b9[_0x0c3b('0x2b')],_0x3a32b9[_0x0c3b('0x2d')]);_0x12d233['attributes']=_[_0x0c3b('0x2f')](_0x3a32b9[_0x0c3b('0x2b')],qs['fields'](_0xed4c55[_0x0c3b('0x2d')][_0x0c3b('0x31')]));_0x12d233['attributes']=_0x12d233[_0x0c3b('0x30')][_0x0c3b('0x32')]?_0x12d233['attributes']:_0x3a32b9[_0x0c3b('0x2b')];if(!_0xed4c55[_0x0c3b('0x2d')][_0x0c3b('0x33')](_0x0c3b('0x34'))){_0x12d233[_0x0c3b('0x1d')]=qs['limit'](_0xed4c55[_0x0c3b('0x2d')][_0x0c3b('0x1d')]);_0x12d233[_0x0c3b('0x1c')]=qs[_0x0c3b('0x1c')](_0xed4c55[_0x0c3b('0x2d')][_0x0c3b('0x1c')]);}_0x12d233[_0x0c3b('0x54')]=qs[_0x0c3b('0x35')](_0xed4c55['query'][_0x0c3b('0x35')]);_0x12d233[_0x0c3b('0x36')]=qs[_0x0c3b('0x2e')](_[_0x0c3b('0x37')](_0xed4c55[_0x0c3b('0x2d')],_0x3a32b9[_0x0c3b('0x2e')]));if(_0xed4c55['query']['filter']){_0x12d233[_0x0c3b('0x36')]=_['merge'](_0x12d233['where'],{'$or':_[_0x0c3b('0x3a')](_0x12d233[_0x0c3b('0x30')],function(_0x4923ce){var _0x883911={};_0x883911[_0x4923ce]={'$like':'%'+_0xed4c55[_0x0c3b('0x2d')][_0x0c3b('0x38')]+'%'};return _0x883911;})});}_0x12d233[_0x0c3b('0x36')]=_[_0x0c3b('0x39')](_0x12d233[_0x0c3b('0x36')],{'mailboxuser':_0x3af044['mailbox']});_0x12d233=_[_0x0c3b('0x39')]({},_0x12d233,_0xed4c55[_0x0c3b('0x3e')]);return db[_0x0c3b('0x53')][_0x0c3b('0x55')](_0x12d233)['then'](respondWithFilteredResult(_0x3d8468,_0x12d233));})['catch'](handleError(_0x3d8468,null));};