Skip to content

Commit 30a764f

Browse files
author
Immanuel Pelzer
committed
Add week-5 final
1 parent 925c590 commit 30a764f

14 files changed

+354
-206
lines changed

.gitignore

+3
Original file line numberDiff line numberDiff line change
@@ -59,3 +59,6 @@ typings/
5959

6060
# next.js build output
6161
.next
62+
63+
# mac hidden files
64+
.DS_Store

week-4/services/person-service.js

+3-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,9 @@ async function add(person) {
3333
async function del(personId) {
3434
const allPeople = await findAll()
3535
const personIndex = allPeople.findIndex(p => p.id == personId)
36-
if (personIndex < 0) return
36+
if (personIndex < 0) {
37+
return
38+
}
3739

3840
allPeople.splice(personIndex, 1)
3941

week-5/index.js

+25-19
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@ const express = require('express')
22
const bodyParser = require('body-parser')
33

44
const PersonService = require('./services/person-service')
5-
// const MeetupService = require('./services/meetup-service')
5+
const MeetupService = require('./services/meetup-service')
6+
7+
require('./mongo-connection')
68

79
const app = express()
810

@@ -13,14 +15,16 @@ app.get('/', (req, res) => {
1315
res.render('index')
1416
})
1517

18+
// PERSON ENDPOINTs
19+
1620
app.get('/person/all', async (req, res) => {
1721
const people = await PersonService.findAll()
18-
res.render('person', { people })
22+
res.render('people', { people })
1923
})
2024

2125
app.get('/person/:id', async (req, res) => {
2226
const user = await PersonService.find(req.params.id)
23-
res.send(user)
27+
res.render('data', { data: user })
2428
})
2529

2630
app.post('/person', async (req, res) => {
@@ -33,25 +37,27 @@ app.delete('/person/:id', async (req, res) => {
3337
res.send(user)
3438
})
3539

36-
// app.get('/meetup/all', async (req, res) => {
37-
// const meetups = await MeetupService.findAll()
38-
// res.send(meetups)
39-
// })
40+
// MEETUP ENDPOINTS
41+
42+
app.get('/meetup/all', async (req, res) => {
43+
const meetups = await MeetupService.findAll()
44+
res.render('data', { data: meetups })
45+
})
4046

41-
// app.get('/meetup/:id', async (req, res) => {
42-
// const meetup = await MeetupService.find(req.params.id)
43-
// res.send(meetup)
44-
// })
47+
app.get('/meetup/:id', async (req, res) => {
48+
const meetup = await MeetupService.find(req.params.id)
49+
res.render('data', { data: meetup })
50+
})
4551

46-
// app.post('/meetup', async (req, res) => {
47-
// const meetup = await MeetupService.add(req.body)
48-
// res.send(meetup)
49-
// })
52+
app.post('/meetup', async (req, res) => {
53+
const meetup = await MeetupService.add(req.body)
54+
res.send(meetup)
55+
})
5056

51-
// app.delete('/meetup/:id', async (req, res) => {
52-
// const meetup = await MeetupService.del(req.params.id)
53-
// res.send(meetup)
54-
// })
57+
app.post('/meetup/:id/addAttendee', async (req, res) => {
58+
const meetup = await MeetupService.addAttendee(req.params.id, req.body.personId)
59+
res.send(meetup)
60+
})
5561

5662
app.listen(3000, () => {
5763
console.log('Server listening')

week-5/models/meetup.js

+5-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,11 @@ const mongoose = require('mongoose')
22

33
const MeetupSchema = new mongoose.Schema({
44
name: String,
5-
location: String
5+
location: String,
6+
attendees: [{
7+
type: mongoose.Schema.Types.ObjectId,
8+
ref: 'Person'
9+
}]
610
})
711

812
module.exports = mongoose.model('Meetup', MeetupSchema);

week-5/models/person.js

+6-13
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,8 @@
1-
module.exports = class Person {
2-
constructor(name, age, id) {
3-
this.name = name
4-
this.age = age
5-
this.id = id
6-
}
1+
const mongoose = require('mongoose')
72

8-
attend(meetup) {
9-
meetup.attendees.push(this)
10-
}
3+
const PersonSchema = new mongoose.Schema({
4+
name: String,
5+
age: Number
6+
})
117

12-
static create({ name, age, id }) {
13-
return new Person(name, age, id);
14-
}
15-
}
8+
module.exports = mongoose.model('Person', PersonSchema);

week-5/mongo-connection.js

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
const mongoose = require('mongoose')
2+
3+
mongoose.connect('mongodb://localhost/test', { useNewUrlParser: true })
4+
.then(() => {
5+
console.log('Mongoose connected')
6+
})
7+
.catch(err => {
8+
console.log(err)
9+
})

0 commit comments

Comments
 (0)