Skip to content
Snippets Groups Projects
Commit eb53acb2 authored by Andrej Rasevic's avatar Andrej Rasevic
Browse files

completing players api

parent e5efa83d
No related branches found
No related tags found
No related merge requests found
......@@ -10,4 +10,22 @@ Content-Type: application/json
"sportAffiliatedWith": "tennis",
"countryOfBirth": "USA",
"active": "false"
}
\ No newline at end of file
}
###
GET http://localhost:4000/players/60e5b14706e73b46598cf557
###
DELETE http://localhost:4000/players/60e5b3858f53ff46d02a54a3
###
PUT http://localhost:4000/players/60e5b14706e73b46598cf557
Content-Type: application/json
{
"countryOfBirth": "USA",
"active": false
}
......@@ -35,15 +35,63 @@ router.post('/', async (req, res) => {
// retrieve a single player in our database
router.get('/:id', getPlayer, logPlayer, async (req, res) => {
res.json(res.player)
})
// update a single player in our database
router.put('/:id', getPlayer, async (req, res) => {
if (req.body.name != null) {
res.player.name = req.body.name
}
if (req.body.sportAffiliatedWith != null) {
res.player.sportAffiliatedWith = req.body.sportAffiliatedWith
}
if (req.body.countryOfBirth != null) {
res.player.countryOfBirth = req.body.countryOfBirth
}
if (req.body.active != null) {
res.player.active = req.body.active
}
try {
const updatedPlayer = await res.player.save()
res.json(updatedPlayer)
} catch (err) {
res.status(400).json({ message: err.message})
}
})
// delete a single player in our database
router.delete('/:id', getPlayer, async (req, res) => {
try {
await res.player.remove()
res.json({message: 'Successfully deleted player'})
} catch (err) {
res.status(500).json({message: err.message})
}
})
// example of custom middleware
async function getPlayer(req, res, next) {
let player
try {
player = await Player.findById(req.params.id)
if (player == null) {
return res.status(404).json({message: 'Player not found'})
}
} catch (err) {
return res.status(500).json({message: err.message})
}
res.player = player
next()
}
function logPlayer(req, res, next) {
console.log(res.player)
next()
}
module.exports = router
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment