Update src/routes/userRoutes.js
Browse files- src/routes/userRoutes.js +18 -0
src/routes/userRoutes.js
CHANGED
|
@@ -5,6 +5,7 @@ import { updateKarma } from '../services/KarmaService.js';
|
|
| 5 |
import CallSession from '../models/CallSession.js';
|
| 6 |
import SupportTicket from '../models/SupportTicket.js';
|
| 7 |
import { requireAdmin } from '../middleware/requireAdmin.js';
|
|
|
|
| 8 |
|
| 9 |
const router = express.Router();
|
| 10 |
|
|
@@ -153,6 +154,23 @@ router.post('/contact', async (req, res) => {
|
|
| 153 |
}
|
| 154 |
});
|
| 155 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 156 |
// ADMIN: Get all support tickets
|
| 157 |
router.get(
|
| 158 |
'/admin/support-tickets',
|
|
|
|
| 5 |
import CallSession from '../models/CallSession.js';
|
| 6 |
import SupportTicket from '../models/SupportTicket.js';
|
| 7 |
import { requireAdmin } from '../middleware/requireAdmin.js';
|
| 8 |
+
import axios from 'axios';
|
| 9 |
|
| 10 |
const router = express.Router();
|
| 11 |
|
|
|
|
| 154 |
}
|
| 155 |
});
|
| 156 |
|
| 157 |
+
// 6. Get TURN Credentials
|
| 158 |
+
router.get('/turn-credentials', requireAuth, async (req, res) => {
|
| 159 |
+
try {
|
| 160 |
+
// 1. Ask Metered for credentials using your Secret Key
|
| 161 |
+
const response = await axios.get(`https://www.metered.ca/api/v1/turn/credentials?apiKey=${process.env.METERED_API_KEY}`);
|
| 162 |
+
|
| 163 |
+
// 2. Send the credentials to the frontend
|
| 164 |
+
res.send(response.data);
|
| 165 |
+
} catch (err) {
|
| 166 |
+
console.error("TURN Fetch Error:", err);
|
| 167 |
+
// Fallback to just Google if Metered fails
|
| 168 |
+
res.send([
|
| 169 |
+
{ urls: "stun:stun.l.google.com:19302" }
|
| 170 |
+
]);
|
| 171 |
+
}
|
| 172 |
+
});
|
| 173 |
+
|
| 174 |
// ADMIN: Get all support tickets
|
| 175 |
router.get(
|
| 176 |
'/admin/support-tickets',
|