const express = require('express') const router = express.Router(); const mongoose = require('mongoose'); const {celebrate} = require('celebrate'); const {requireAuth} = require('../middlewares/middleware'); const {athleteUpdateSchema, guid} = require('../schemas/joi'); const Athlete = mongoose.model('Athlete'); router.get('/api/athletes', requireAuth, async (req, res) => { const athletes = await Athlete.find(); res.send(athletes); }); router.get('/api/athletes/:id', requireAuth, celebrate(guid), async (req, res) => { const athlete = await Athlete.findById(req.params.id); res.send(athlete) }); router.get('/api/athletes/:id/edit', requireAuth, celebrate(guid), async (req, res) => { const athlete = await Athlete.findById(req.params.id) res.send(athlete) } ) ; router.put('/api/athletes/:id', requireAuth, celebrate(athleteUpdateSchema, guid), async (req, res) => { const {name, _trainer} = req.body const updateAthlete = {name, _trainer} if (_trainer === '') { updateAthlete._trainer = undefined await Athlete.findByIdAndUpdate(req.params.id, updateAthlete, {}, (err, athlete) => { if (err) return res.status(400).json({errors: 'Something went wrong!'}); return res.send(athlete) }) } else if (name || _trainer) await Athlete.findByIdAndUpdate(req.params.id, updateAthlete, {}, (err, athlete) => { if (err) return res.status(400).json({errors: 'Something went wrong!'}); res.send(athlete) }) }); router.delete('/api/athlete/:id', requireAuth, celebrate(guid), async (req, res) => { await Athlete.findByIdAndDelete(req.params.id) } ) ; module.exports = router;