-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathserver.js
169 lines (137 loc) · 3.61 KB
/
server.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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
const express = require('express');
const app = express();
const cookieParser = require('cookie-parser')
const userModel = require('./models/userModel')
// middleware for json
app.use(express.json())
app.use(cookieParser())
app.listen(3000)
// mini app
// const userRouter = require(userRouter)
// const authRouter = require('./routers/authRouter');
const authRouter = express.Router()
const userRouter = express.Router()
// base URL
app.use("/user", userRouter)
app.use("/", authRouter)
//todo userRouter wala code
userRouter
.route('/')
.get(protectRoute, getUsers)
.post(postUser)
.patch(updateUser)
.delete(deleteUser)
userRouter
.route('/set')
.get(setCookies)
userRouter
.route('/get')
.get(getCookies)
userRouter
.route('/:id')
.get(getUserById)
// routes of '/user'
async function getUsers(req, res) {
//queries
let allUsers = await userModel.find();
// res.send("Hello world")
res.json({
message: 'list of the users found',
data: allUsers
})
}
function postUser(req, res) {
users = req.body
console.log(req.body);
res.send("Response recieved successfully")
}
function updateUser(req, res) {
const dataToBePatched = req.body
for (x in dataToBePatched) {
users[x] = dataToBePatched[x]
}
res.send("Data appended successfully")
}
function deleteUser(req, res) {
users = {}
res.send("Data deleted successfully");
}
function getUserById(req, res) {
console.log(req.params);
res.send("user id recieved")
}
function setCookies(req, res) {
res.setHeader('Set-Cookie', 'isLoggedin=true')
// res.cookie('isLoggedin', true, {maxAge:1000*60*60*24, secure:true, httpOnly:true})
res.cookie('isPrimeMember', true)
res.send("cookies set successfully")
}
function getCookies(req, res) {
// let cookies = req.cookies
console.log(req.cookies)
res.json({ cookieData: req.cookies })
// res.send("got the cookie")
}
let flag = false
function protectRoute(req, res, next){
// if(req.cookies.isLoggedIn){
// next();
// } else {
// return res.json({
// message: "You are not Logged in"
// })
// }
console.log(req.cookie);
next();
}
//todo authRouter vala code
authRouter
.route('/auth/signup')
.get(getSignup)
.post(postSignup)
authRouter
.route('/auth/login')
.post(postLogin)
function getSignup(req, res) {
res.sendFile("./html/signup.html", { root: __dirname })
}
async function postSignup(req, res) {
let dataObj = req.body;
let newUser = await userModel.create(dataObj)
console.log(newUser);
res.send("<h1>Hello world</h1>")
}
async function postLogin(req, res) {
try {
let data = req.body
if (data.email) {
let user = await userModel.findOne({ email: data.email })
if (user) {
if (data.password == user.password) {
res.cookie("isLoggedIn", true)
return res.json({
message: "User Logged in successfully",
userDetails: data
})
} else {
return res.json({
message: "incorrect Password"
})
}
} else {
return res.json({
message: "User not found"
})
}
} else{
return res.json({
message: "Empty Fields found"
})
}
}
catch (e) {
return res.status(500).json({
message: e.message
})
}
}