swimmingArt/routes/users.js

46 lines
1.3 KiB
JavaScript

const express = require('express');
const router = express.Router();
const { MongoClient, ObjectId } = require('mongodb');
require('dotenv').config();
const uri = process.env.MONGO_URI;
const client = new MongoClient(uri);
// Obtener todos los atletas
router.get('/athletes', async (req, res) => {
try {
await client.connect();
const db = client.db('swimartdb');
const athletes = await db.collection('users')
.find({ role: 'athlete' })
.project({ _id: 1, name: 1 })
.toArray();
res.json(athletes);
} catch (err) {
console.error('Error al obtener atletas:', err);
res.status(500).json({ error: 'Error interno del servidor' });
}
});
// Obtener usuario por ID
router.get('/:id', async (req, res) => {
try {
await client.connect();
const db = client.db('swimartdb');
const user = await db.collection('users')
.findOne({ _id: new ObjectId(req.params.id) }, { projection: { name: 1, email: 1, role: 1 } });
if (!user) {
return res.status(404).json({ error: 'Usuario no encontrado' });
}
res.json(user);
} catch (error) {
console.error('Error al obtener usuario:', error);
res.status(500).json({ error: 'Error al obtener usuario', details: error });
}
});
module.exports = router;