diff --git a/parts/3/notes.md b/parts/3/notes.md index eebcc43..a765a7f 100644 --- a/parts/3/notes.md +++ b/parts/3/notes.md @@ -1,7 +1,7 @@ Exercises: * [X] 3.1 * [X] 3.2 -* [ ] 3.3 +* [X] 3.3 * [ ] 3.4 * [ ] 3.5 * [ ] 3.6 diff --git a/parts/3/phonebookBackend/index.js b/parts/3/phonebookBackend/index.js index e854f8f..f2167a0 100644 --- a/parts/3/phonebookBackend/index.js +++ b/parts/3/phonebookBackend/index.js @@ -30,10 +30,28 @@ app.get("/api/persons", (request, response) => { response.json(persons); }); +app.get("/api/persons/:id", (request, response) => { + const requestedId = Number(request.params.id); + + const requestedPerson = persons.find( + (person) => Number(person.id) === requestedId + ); + + if (!requestedPerson) { + return response.status(404).json({ + error: "ID not found.", + }); + } + + if (requestedPerson) { + return response.json(requestedPerson); + } +}); + app.get("/info", (request, response) => { let responseString = `

Phonebook has info for ${persons.length} people

`; responseString += `

${new Date().toString()}

`; - + const id = request.params.id; response.send(responseString); }); diff --git a/parts/3/phonebookBackend/requests/get_person.rest b/parts/3/phonebookBackend/requests/get_person.rest new file mode 100644 index 0000000..519873d --- /dev/null +++ b/parts/3/phonebookBackend/requests/get_person.rest @@ -0,0 +1 @@ +GET http://localhost:3001/api/persons/6 \ No newline at end of file