Built motion from commit (unavailable).|2.5.13
[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 _0x5b47=['name','send','index','map','VoiceMail','rawAttributes','type','key','model','keys','filters','intersection','query','attributes','fields','length','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','count','includeAll','include','rows','catch','show','create','role','UserProfileSection','find','userProfileId','body','params','findOne','hasOwnProperty','mailbox','findAndCountAll','html-pdf','eml-format','bluebird','mustache','util','path','sox','squel','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','json','offset','limit','status','set','Content-Range','apply','reject','save','update','then','destroy','get','Voicemails','UserProfileResource','end','error'];(function(_0x574bf8,_0x5eedbf){var _0x1de7ba=function(_0x5c6baf){while(--_0x5c6baf){_0x574bf8['push'](_0x574bf8['shift']());}};_0x1de7ba(++_0x5eedbf);}(_0x5b47,0x120));var _0x75b4=function(_0x52aee7,_0xba3275){_0x52aee7=_0x52aee7-0x0;var _0x32ea96=_0x5b47[_0x52aee7];return _0x32ea96;};'use strict';var pdf=require(_0x75b4('0x0'));var emlformat=require(_0x75b4('0x1'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x75b4('0x2'));var Mustache=require(_0x75b4('0x3'));var util=require(_0x75b4('0x4'));var path=require(_0x75b4('0x5'));var sox=require(_0x75b4('0x6'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var _=require('lodash');var squel=require(_0x75b4('0x7'));var crypto=require('crypto');var jsforce=require(_0x75b4('0x8'));var deskjs=require(_0x75b4('0x9'));var toCsv=require(_0x75b4('0xa'));var querystring=require(_0x75b4('0xb'));var Papa=require(_0x75b4('0xc'));var Redis=require(_0x75b4('0xd'));var authService=require(_0x75b4('0xe'));var qs=require(_0x75b4('0xf'));var as=require(_0x75b4('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x75b4('0x11'))('api');var utils=require(_0x75b4('0x12'));var config=require(_0x75b4('0x13'));var licenseUtil=require(_0x75b4('0x14'));var db=require(_0x75b4('0x15'))['db'];function respondWithStatusCode(_0x3fddd8,_0x191cc8){_0x191cc8=_0x191cc8||0xcc;return function(_0x246b9d){if(_0x246b9d){return _0x3fddd8[_0x75b4('0x16')](_0x191cc8);}return _0x3fddd8['status'](_0x191cc8)['end']();};}function respondWithResult(_0x50f3be,_0x1f9c76){_0x1f9c76=_0x1f9c76||0xc8;return function(_0x2bc1a7){if(_0x2bc1a7){return _0x50f3be['status'](_0x1f9c76)[_0x75b4('0x17')](_0x2bc1a7);}};}function respondWithFilteredResult(_0x2d827b,_0x3977ca){return function(_0x4d8345){if(_0x4d8345){var _0x2cd583=_0x4d8345['count'],_0x320a44=_0x3977ca[_0x75b4('0x18')],_0x5bf10b=_0x3977ca[_0x75b4('0x18')]+_0x3977ca[_0x75b4('0x19')],_0xc7ce4f;if(_0x5bf10b>=_0x2cd583){_0x5bf10b=_0x2cd583;_0xc7ce4f=0xc8;}else{_0xc7ce4f=0xce;}_0x2d827b[_0x75b4('0x1a')](_0xc7ce4f);return _0x2d827b[_0x75b4('0x1b')](_0x75b4('0x1c'),_0x320a44+'-'+_0x5bf10b+'/'+_0x2cd583)[_0x75b4('0x17')](_0x4d8345);}return null;};}function patchUpdates(_0x3dde90){return function(_0x2fea13){try{jsonpatch[_0x75b4('0x1d')](_0x2fea13,_0x3dde90,!![]);}catch(_0x61d267){return BPromise[_0x75b4('0x1e')](_0x61d267);}return _0x2fea13[_0x75b4('0x1f')]();};}function saveUpdates(_0x40afc5,_0x3b226e){return function(_0x98b98){if(_0x98b98){return _0x98b98[_0x75b4('0x20')](_0x40afc5)[_0x75b4('0x21')](function(_0x22e7d9){return _0x22e7d9;});}return null;};}function removeEntity(_0x391226,_0x1583b1){return function(_0x2f91a7){if(_0x2f91a7){return _0x2f91a7[_0x75b4('0x22')]()[_0x75b4('0x21')](function(){var _0x4beeff=_0x2f91a7[_0x75b4('0x23')]({'plain':!![]});var _0x59bab1=_0x75b4('0x24');return db[_0x75b4('0x25')][_0x75b4('0x22')]({'where':{'type':_0x59bab1,'resourceId':_0x4beeff['id']}})[_0x75b4('0x21')](function(){return _0x2f91a7;});})['then'](function(){_0x391226['status'](0xcc)[_0x75b4('0x26')]();});}};}function handleEntityNotFound(_0x3c526d,_0x4e9bfe){return function(_0x35eb86){if(!_0x35eb86){_0x3c526d[_0x75b4('0x16')](0x194);}return _0x35eb86;};}function handleError(_0x5943ec,_0x50fb98){_0x50fb98=_0x50fb98||0x1f4;return function(_0x125c43){logger[_0x75b4('0x27')](_0x125c43['stack']);if(_0x125c43[_0x75b4('0x28')]){delete _0x125c43[_0x75b4('0x28')];}_0x5943ec[_0x75b4('0x1a')](_0x50fb98)[_0x75b4('0x29')](_0x125c43);};}exports[_0x75b4('0x2a')]=function(_0xe936b2,_0x5468eb){var _0x4d142c={},_0xc05d27={},_0x1608a8={'count':0x0,'rows':[]};var _0x251f03=_[_0x75b4('0x2b')](db[_0x75b4('0x2c')][_0x75b4('0x2d')],function(_0x398269){return{'name':_0x398269['fieldName'],'type':_0x398269[_0x75b4('0x2e')][_0x75b4('0x2f')]};});_0xc05d27[_0x75b4('0x30')]=_[_0x75b4('0x2b')](_0x251f03,_0x75b4('0x28'));_0xc05d27['query']=_[_0x75b4('0x31')](_0xe936b2['query']);_0xc05d27[_0x75b4('0x32')]=_[_0x75b4('0x33')](_0xc05d27[_0x75b4('0x30')],_0xc05d27[_0x75b4('0x34')]);_0x4d142c[_0x75b4('0x35')]=_[_0x75b4('0x33')](_0xc05d27['model'],qs[_0x75b4('0x36')](_0xe936b2['query']['fields']));_0x4d142c['attributes']=_0x4d142c[_0x75b4('0x35')][_0x75b4('0x37')]?_0x4d142c['attributes']:_0xc05d27['model'];if(!_0xe936b2['query']['hasOwnProperty'](_0x75b4('0x38'))){_0x4d142c[_0x75b4('0x19')]=qs['limit'](_0xe936b2[_0x75b4('0x34')][_0x75b4('0x19')]);_0x4d142c[_0x75b4('0x18')]=qs[_0x75b4('0x18')](_0xe936b2[_0x75b4('0x34')]['offset']);}_0x4d142c[_0x75b4('0x39')]=qs[_0x75b4('0x3a')](_0xe936b2[_0x75b4('0x34')][_0x75b4('0x3a')]);_0x4d142c[_0x75b4('0x3b')]=qs[_0x75b4('0x32')](_[_0x75b4('0x3c')](_0xe936b2[_0x75b4('0x34')],_0xc05d27[_0x75b4('0x32')]),_0x251f03);if(_0xe936b2['query'][_0x75b4('0x3d')]){_0x4d142c[_0x75b4('0x3b')]=_[_0x75b4('0x3e')](_0x4d142c[_0x75b4('0x3b')],{'$or':_[_0x75b4('0x2b')](_0x251f03,function(_0x48a1f2){if(_0x48a1f2[_0x75b4('0x2e')]!==_0x75b4('0x3f')){var _0x537aa5={};_0x537aa5[_0x48a1f2[_0x75b4('0x28')]]={'$like':'%'+_0xe936b2['query'][_0x75b4('0x3d')]+'%'};return _0x537aa5;}})});}_0x4d142c=_[_0x75b4('0x3e')]({},_0x4d142c,_0xe936b2[_0x75b4('0x40')]);var _0x53928f={'where':_0x4d142c[_0x75b4('0x3b')]};return db['VoiceMail'][_0x75b4('0x41')](_0x53928f)[_0x75b4('0x21')](function(_0x1420f9){_0x1608a8[_0x75b4('0x41')]=_0x1420f9;if(_0xe936b2[_0x75b4('0x34')][_0x75b4('0x42')]){_0x4d142c[_0x75b4('0x43')]=[{'all':!![]}];}return db[_0x75b4('0x2c')]['findAll'](_0x4d142c);})['then'](function(_0x50d609){_0x1608a8[_0x75b4('0x44')]=_0x50d609;return _0x1608a8;})[_0x75b4('0x21')](respondWithFilteredResult(_0x5468eb,_0x4d142c))[_0x75b4('0x45')](handleError(_0x5468eb,null));};exports[_0x75b4('0x46')]=function(_0xd77e48,_0x273b2e){var _0x4a4d83={'raw':!![],'where':{'id':_0xd77e48['params']['id']}},_0x410f6e={};_0x410f6e['model']=_[_0x75b4('0x31')](db[_0x75b4('0x2c')][_0x75b4('0x2d')]);_0x410f6e[_0x75b4('0x34')]=_[_0x75b4('0x31')](_0xd77e48[_0x75b4('0x34')]);_0x410f6e['filters']=_[_0x75b4('0x33')](_0x410f6e[_0x75b4('0x30')],_0x410f6e['query']);_0x4a4d83[_0x75b4('0x35')]=_[_0x75b4('0x33')](_0x410f6e[_0x75b4('0x30')],qs[_0x75b4('0x36')](_0xd77e48[_0x75b4('0x34')][_0x75b4('0x36')]));_0x4a4d83[_0x75b4('0x35')]=_0x4a4d83[_0x75b4('0x35')]['length']?_0x4a4d83[_0x75b4('0x35')]:_0x410f6e[_0x75b4('0x30')];if(_0xd77e48[_0x75b4('0x34')]['includeAll']){_0x4a4d83['include']=[{'all':!![]}];}_0x4a4d83=_['merge']({},_0x4a4d83,_0xd77e48['options']);return db[_0x75b4('0x2c')]['find'](_0x4a4d83)[_0x75b4('0x21')](handleEntityNotFound(_0x273b2e,null))[_0x75b4('0x21')](respondWithResult(_0x273b2e,null))['catch'](handleError(_0x273b2e,null));};exports[_0x75b4('0x47')]=function(_0x46f481,_0x4c4f97){return db['VoiceMail']['create'](_0x46f481['body'],{})[_0x75b4('0x21')](function(_0xe8b3d4){var _0x267824=_0x46f481['user'][_0x75b4('0x23')]({'plain':!![]});if(!_0x267824)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x267824[_0x75b4('0x48')]==='user'){var _0x4547dd=_0xe8b3d4[_0x75b4('0x23')]({'plain':!![]});var _0x2e491a='Voicemails';return db[_0x75b4('0x49')][_0x75b4('0x4a')]({'where':{'name':_0x2e491a,'userProfileId':_0x267824[_0x75b4('0x4b')]},'raw':!![]})[_0x75b4('0x21')](function(_0x23edca){if(_0x23edca&&_0x23edca['autoAssociation']===0x0){return db[_0x75b4('0x25')]['create']({'name':_0x4547dd[_0x75b4('0x28')],'resourceId':_0x4547dd['id'],'type':_0x23edca['name'],'sectionId':_0x23edca['id']},{})[_0x75b4('0x21')](function(){return _0xe8b3d4;});}else{return _0xe8b3d4;}})[_0x75b4('0x45')](function(_0x855f05){logger[_0x75b4('0x27')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x855f05);throw _0x855f05;});}return _0xe8b3d4;})[_0x75b4('0x21')](respondWithResult(_0x4c4f97,0xc9))[_0x75b4('0x45')](handleError(_0x4c4f97,null));};exports[_0x75b4('0x20')]=function(_0x1a1f59,_0x427a7d){if(_0x1a1f59[_0x75b4('0x4c')]['id']){delete _0x1a1f59[_0x75b4('0x4c')]['id'];}return db[_0x75b4('0x2c')][_0x75b4('0x4a')]({'where':{'id':_0x1a1f59[_0x75b4('0x4d')]['id']}})[_0x75b4('0x21')](handleEntityNotFound(_0x427a7d,null))[_0x75b4('0x21')](saveUpdates(_0x1a1f59[_0x75b4('0x4c')],null))[_0x75b4('0x21')](respondWithResult(_0x427a7d,null))['catch'](handleError(_0x427a7d,null));};exports[_0x75b4('0x22')]=function(_0x2c8bc2,_0x4e0538){return db[_0x75b4('0x2c')][_0x75b4('0x4a')]({'where':{'id':_0x2c8bc2[_0x75b4('0x4d')]['id']}})[_0x75b4('0x21')](handleEntityNotFound(_0x4e0538,null))[_0x75b4('0x21')](removeEntity(_0x4e0538,null))[_0x75b4('0x45')](handleError(_0x4e0538,null));};exports['getMessages']=function(_0x267122,_0x4bf7dd,_0x2a1010){return db[_0x75b4('0x2c')][_0x75b4('0x4e')]({'where':{'id':_0x267122[_0x75b4('0x4d')]['id']}})[_0x75b4('0x21')](handleEntityNotFound(_0x4bf7dd,null))[_0x75b4('0x21')](function(_0xbbb9d8){var _0x5f319f;var _0x29cb02={},_0x1f9005={};_0x1f9005[_0x75b4('0x30')]=_[_0x75b4('0x31')](db['VoiceMailMessage'][_0x75b4('0x2d')]);_0x1f9005[_0x75b4('0x34')]=_[_0x75b4('0x31')](_0x267122[_0x75b4('0x34')]);_0x1f9005[_0x75b4('0x32')]=_[_0x75b4('0x33')](_0x1f9005['model'],_0x1f9005[_0x75b4('0x34')]);_0x29cb02[_0x75b4('0x35')]=_[_0x75b4('0x33')](_0x1f9005[_0x75b4('0x30')],qs[_0x75b4('0x36')](_0x267122[_0x75b4('0x34')]['fields']));_0x29cb02[_0x75b4('0x35')]=_0x29cb02[_0x75b4('0x35')]['length']?_0x29cb02[_0x75b4('0x35')]:_0x1f9005[_0x75b4('0x30')];if(!_0x267122['query'][_0x75b4('0x4f')](_0x75b4('0x38'))){_0x29cb02['limit']=qs[_0x75b4('0x19')](_0x267122[_0x75b4('0x34')]['limit']);_0x29cb02[_0x75b4('0x18')]=qs[_0x75b4('0x18')](_0x267122[_0x75b4('0x34')]['offset']);}_0x29cb02[_0x75b4('0x39')]=qs[_0x75b4('0x3a')](_0x267122['query'][_0x75b4('0x3a')]);_0x29cb02[_0x75b4('0x3b')]=qs[_0x75b4('0x32')](_['pick'](_0x267122[_0x75b4('0x34')],_0x1f9005[_0x75b4('0x32')]));if(_0x267122[_0x75b4('0x34')][_0x75b4('0x3d')]){_0x29cb02[_0x75b4('0x3b')]=_[_0x75b4('0x3e')](_0x29cb02['where'],{'$or':_[_0x75b4('0x2b')](_0x29cb02[_0x75b4('0x35')],function(_0x52961d){var _0x410d42={};_0x410d42[_0x52961d]={'$like':'%'+_0x267122[_0x75b4('0x34')][_0x75b4('0x3d')]+'%'};return _0x410d42;})});}_0x29cb02[_0x75b4('0x3b')]=_[_0x75b4('0x3e')](_0x29cb02[_0x75b4('0x3b')],{'mailboxuser':_0xbbb9d8[_0x75b4('0x50')]});_0x29cb02=_['merge']({},_0x29cb02,_0x267122[_0x75b4('0x40')]);return db['VoiceMailMessage'][_0x75b4('0x51')](_0x29cb02)['then'](respondWithFilteredResult(_0x4bf7dd,_0x29cb02));})[_0x75b4('0x45')](handleError(_0x4bf7dd,null));};