diff --git a/parts/2/notes.md b/parts/2/notes.md index 7af2879..66e7f84 100644 --- a/parts/2/notes.md +++ b/parts/2/notes.md @@ -12,4 +12,5 @@ Exercises: * [X] 2.11 * [X] 2.12 * [X] 2.13 -* [X] 2.14 \ No newline at end of file +* [X] 2.14 +* [X] 2.15 \ No newline at end of file diff --git a/parts/2/phoneBook/db.json b/parts/2/phoneBook/db.json index 1f1c491..fb6e7a8 100644 --- a/parts/2/phoneBook/db.json +++ b/parts/2/phoneBook/db.json @@ -4,6 +4,11 @@ "name": "Ada Lovelace", "number": "39-44-5323523", "id": "2" + }, + { + "name": "John", + "number": "22222", + "id": "John" } ] } \ No newline at end of file diff --git a/parts/2/phoneBook/src/App.jsx b/parts/2/phoneBook/src/App.jsx index 4494124..f007e52 100644 --- a/parts/2/phoneBook/src/App.jsx +++ b/parts/2/phoneBook/src/App.jsx @@ -56,7 +56,33 @@ const App = () => { return person.name === newName; }) ) { - alert(`${newName} is already in the phonebook.`); + const wantsToOverWrite = confirm( + `${newName} is already in the phonebook. Do you want to overwrite the number?` + ); + if (!wantsToOverWrite) { + return; + } + + personService + .updatePerson(newName, { + name: newName, + number: newNumber, + id: newName, + }) + .then(() => { + setTimeout(() => { + console.log("postimeout"); + }, 1000); + }) + .then(() => { + return personService.getPersons(); + }) + .then((response) => { + setPersons(response.data); + }); + + setNewName(""); + setNewNumber(""); return; } @@ -92,7 +118,7 @@ const App = () => { .then(() => { setTimeout(() => { console.log("postimeout"); - }, 3000); + }, 1000); }) .then(() => { return personService.getPersons(); diff --git a/parts/2/phoneBook/src/services/personService.js b/parts/2/phoneBook/src/services/personService.js index 81dce0b..9da0b0c 100644 --- a/parts/2/phoneBook/src/services/personService.js +++ b/parts/2/phoneBook/src/services/personService.js @@ -9,5 +9,8 @@ const addPerson = (personData) => { const deletePerson = (personId) => { return axios.delete(`http://localhost:3001/persons/${personId}`); }; +const updatePerson = (personId, personData) => { + return axios.put(`http://localhost:3001/persons/${personId}`, personData); +}; -export default { getPersons, addPerson, deletePerson }; +export default { getPersons, addPerson, deletePerson, updatePerson };