-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathserver.js
More file actions
165 lines (137 loc) · 4.18 KB
/
Copy pathserver.js
File metadata and controls
165 lines (137 loc) · 4.18 KB
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
require('dotenv').config();
const express = require('express');
const layouts = require('express-ejs-layouts');
const app = express();
const session = require('express-session');
const flash = require('connect-flash');
const passport = require('./config/ppConfig');
const isLoggedIn = require('./middleware/isLoggedIn');
const axios = require('axios');
const db = require('./models');
const path = require('path');
const { SMALLINT } = require('sequelize');
const methodOverride = require('method-override');
const SECRET_SESSION = process.env.SECRET_SESSION;
const apiKey = process.env.APIKEY
console.log('works ', SECRET_SESSION);
app.set('view engine', 'ejs');
app.use(methodOverride('_method'));
app.use(require('morgan')('dev'));
app.use(express.urlencoded({ extended: false }));
app.use(express.static(path.join(__dirname, '/public')));
app.use(layouts);
app.use(session({
secret: SECRET_SESSION, // What we actually will be giving the user on our site as a session cookie
resave: false, // Save the session even if it's modified, make this false
saveUninitialized: true // If we have a new session, we save it, therefore making that true
}));
app.use(flash()); // flash middleware
app.use(passport.initialize()); // Initialize passport
app.use(passport.session()); // Add a session
app.use((req, res, next) => {
console.log('res locals >>>', res.locals);
res.locals.alerts = req.flash();
res.locals.currentUser = req.user;
next();
});
//=== HOME PAGE ===//
app.get('/', isLoggedIn, (req, res) => {
const { id, name, email } = req.user.get();
db.gblog.findAll({ order: [['createdAt', 'DESC']], limit: 20,
offset: 0,
include: [db.user, {
model: db.comment,
include: [db.user]
}] }).then((gblogs) => {
res.render('index', {gblogs, root: req.get('host') });
})
});
//=== post new global
app.post('/new', isLoggedIn, async (req, res) => {
let content = req.body.newBlog;
let id = req.user.id;
let topic = req.body.topic;
db.gblog.create({
content: content,
topic: topic,
userId: id
}).then(() => {
res.redirect('/');
}).catch(err => {
console.log(err);
})
});
//== Post new comments
app.post('/:idx/comment/', isLoggedIn, (req, res) => {
let comments = req.body.comments;
let id = req.user.id;
db.comment.create({
content: req.body.comments,
userId: req.user.id,
gblogId: req.params.idx
}).then(() => {
res.redirect('/');
}).catch(err => {
console.log('Error creating comment', err);
});
});
//== get edit
app.get('/global/edit/:idx', isLoggedIn, async (req, res) => {
db.gblog.findOne({
where: { id: req.params.idx }
}).then(log => {
const id = log.id;
const content = log.content;
console.log('console log', log);
res.render('global/edit', { id, content });
})
});
//=== now Edit
app.put('/global/new/:idx', isLoggedIn, (req, res) => {
db.gblog.update(
{ content: req.body.editContent + ' --e' },
{ where: { id: req.params.idx } }
)
.then((results) => {
console.log(results);
res.redirect('/');
})
.catch(err => {
console.log('error below: ', err);
})
});
//== get delete
app.get('/global/delete/:idx', isLoggedIn, (req, res) => {
db.gblog.findOne({
where: { id: req.params.idx }
}).then(log => {
const id = log.id;
const content = log.content;
console.log('console log', log);
res.render("global/delete", { id, content });
})
});
//=== Delete route
app.delete('/global/delete/dl/:idx', isLoggedIn, function (req, res, next) {
db.gblog.findOne({ where: { id: req.params.idx } }).then((gblog) => {
console.log('blog deleted', gblog);
gblog.destroy();
})
.then(() => {
res.redirect('/');
}).catch(err => {
console.log('CONSOLE>LOG: ', err);
});
});
app.use('/auth', require('./controllers/auth'));
app.use('/chat', require('./controllers/chat'));
app.use('/profile', require('./controllers/profile'));
//== 404
app.get('*', (req, res) => {
res.render('global/404');
});
const PORT = process.env.PORT || 3000;
const appserver = app.listen(PORT, () => {
console.log(`🎧 You're listening to the smooth sounds of port ${PORT} 🎧`);
});
module.exports = appserver;