diff --git a/controllers/people.js b/controllers/people.js index 1f58043..a9ba1c0 100644 --- a/controllers/people.js +++ b/controllers/people.js @@ -1,7 +1,7 @@ const express = require('express'); const router = express.Router(); -const data = [ +let data = [ { id:1, name:'Matt', @@ -29,12 +29,20 @@ router.post('/', (req, res) => { }); router.delete('/:id', (req, res) => { - data.splice(req.params.id, 1); + data = data.filter(person => person.id != req.params.id, 1); res.json(data); }); router.put('/:id', (req, res) => { - data[req.params.id] = req.body; + req.body.id = req.params.id; + + data = data.map((person) => { + if(person.id == req.params.id){ + return req.body + } else { + return person + } + }) res.json(data); }); diff --git a/public/app.js b/public/app.js new file mode 100644 index 0000000..b701d5c --- /dev/null +++ b/public/app.js @@ -0,0 +1,128 @@ +class App extends React.Component { + state = { + people:[] + } + + componentDidMount = () => { + axios.get('/people').then( + (response) => { + this.setState({ + people:response.data + }) + } + ) + } + + createPerson = (event) => { + event.preventDefault(); + axios.post( + '/people', + { + name:this.state.newPersonName, + age:this.state.newPersonAge, + } + ).then( + (response) => { + this.setState({ + people:response.data + }) + } + ) + } + + changeNewPersonAge = (event) => { + this.setState({ + newPersonAge:event.target.value + }); + } + + changeNewPersonName = (event) => { + this.setState({ + newPersonName:event.target.value + }); + } + + deletePerson = (event) => { + axios.delete('/people/' + event.target.value).then( + (response) => { + this.setState({ + people:response.data + }) + } + ) + + } + + updatePerson = (event) => { + event.preventDefault(); + const id = event.target.getAttribute('id'); + axios.put( + '/people/' + id, + { + name:this.state.updatePersonName, + age:this.state.updatePersonAge, + } + ).then( + (response) => { + this.setState({ + people:response.data, + name:'', + age:null, + }) + } + ) + } + + changeUpdatePersonName = (event) => { + this.setState( + { + updatePersonName:event.target.value + } + ) + } + + changeUpdatePersonAge = (event) => { + this.setState( + { + updatePersonAge:event.target.value + } + ) + } + + render = () => { + return