-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapp.js
98 lines (89 loc) · 2.64 KB
/
app.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
//password patrickopenclassroompassword
//mongodb+srv://Patrick:<password>@openclassroom-pgwm0.mongodb.net/test?retryWrites=true&w=majority
const express=require('express');
const bodyParser=require('body-parser');
const mongoose=require('mongoose');
const Recipe=require("./models/recipe");
const app=express();
mongoose.connect('mongodb+srv://Patrick:patrickopenclassroompassword@openclassroom-pgwm0.mongodb.net/test?retryWrites=true&w=majority')
.then(()=>{
console.log("Successful connected to MongoDB Atlas!");
})
.catch((error)=>{
console.log("unable to connect to mongo Atlas");
console.log(error);
});
app.use((req,res,next)=>
{
res.setHeader('Access-Control-Allow-Origin','*');
res.setHeader("Access-Control-Allow-Headers",'Origin, X-Requested-With, Content, Accept, Content-Type, Authorization');
res.setHeader("Access-Control-Allow-Methods","GET, POST, PUT, DELETE, PATCH, OPTIONS")
next();
});
app.use(bodyParser.json());
app.post('/api/recipes',(req,res,next)=>{
const recipe=new Recipe({
title:req.body.title,
ingredients:req.body.ingredients,
instructions:req.body.instructions,
difficulty:req.body.difficulty,
time:req.body.time
});
recipe.save().then(
()=>{
res.status(201).json({message:"Saved Successfully"})
}
)
.catch(error=>{
res.status(400).json({error:error});
})
});
app.put('/api/recipes/:id',(req,res,next)=>{
console.log("Called put");
const recipe=new Recipe({
_id:req.params.id,
title:req.body.title,
ingredients:req.body.ingredients,
instructions:req.body.instructions,
difficulty:req.body.difficulty,
time:req.body.time
});
Recipe.updateOne({
_id:req.params.id
},recipe).then(()=>{
res.status(201).json({message:'Recipe updated Successfully'});
})
.catch(error=>{
res.status(400).json({error:error});
})
});
app.delete('/api/recipes/:id',(req,res,next)=>{
Recipe.deleteOne({_id:req.params.id})
.then(()=>{
res.status(200).json({message:"Deleted"});
})
.catch(error=>{
res.status(400).json({error:error});
})
});
app.use('/api/recipes/:id',(req,res,next)=>{
Recipe.findOne({
_id:req.params.id
}) .then((recipe)=>{
res.status(200).json(recipe);
})
.catch(error=>{
res.status(400).json({error:error});
})
});
app.use("/api/recipes",(req,res,next)=>{
Recipe.find().then(
(recipes)=>{
res.status(200).json(recipes);
}
)
.catch(error=>{
res.status(400).json({error:error});
})
});
module.exports=app;