-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathserver.js
More file actions
187 lines (140 loc) · 5.56 KB
/
Copy pathserver.js
File metadata and controls
187 lines (140 loc) · 5.56 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
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
const express = require('express')
const logger = require('morgan')
const bodyParser = require('body-parser')
const cors = require('cors')
const app = express()
/*
* ROUTES
*/
const routeUsers = require('./routes/routes.api.users')
const routeAuth = require('./routes/routes.api.auth')
const routeIdeas = require('./routes/routes.api.ideas')
const routeComments = require('./routes/routes.api.comments')
const routeVotes = require('./routes/routes.api.votes')
const routeReports = require('./routes/routes.api.reports')
const routeNotifs = require('./routes/routes.api.notifs')
const routeCategories = require('./routes/routes.api.categories')
const routeListApproves = require('./routes/routes.api.list_approves')
/*
* Models
*/
const models = require ('./models')
const Users = models.Users
// JSON Web Tokens
const jwt = require('jsonwebtoken')
// Authentication
const passport = require('passport')
const LocalStrategy = require('passport-local').Strategy
const PORT = process.env.PORT || 8080
app.use(cors())
app.use(logger())
app.use(bodyParser.json({limit: '50mb'}))
app.use(bodyParser.urlencoded({
limit: '50mb',
extended: true,
parameterLimit:50000
}))
app.use('/api/users', routeUsers)
app.use('/api/auth', routeAuth)
app.use('/api/ideas', routeIdeas)
app.use('/api/ideas', routeComments)
app.use('/api/ideas', routeVotes)
app.use('/api/ideas', routeReports)
app.use('/api/notif', routeNotifs)
app.use('/api/categories', routeCategories)
app.use('/api/list_approves', routeListApproves)
// passport.use(new LocalStrategy(Users.authenticate()))
passport.use(new LocalStrategy({
usernameField: 'email',
passwordField: 'password'
}, function (username, password, cb) {
Users.findByUsername(username, function (err, user) {
if (err) { return cb(err); }
if (user) {
return user.authenticate(password, cb);
} else {
return cb(null, false, { message: 'Incorrect password' });
}
});
}))
app.use(passport.initialize());
passport.serializeUser(Users.serializeUser());
passport.deserializeUser(Users.deserializeUser());
app.listen(PORT, (err) => {
if(err){
console.error(err);
}else{
console.log(`server is running in port ${PORT}`);
}
})
/*
db name : db_partneran_dev
MODULE USERS
create table users :
sequelize model:create --name Users --attributes "userId:integer,email:string,myhash:string(1024),mysalt:string,photo_URL:string,verify:boolean"
create db_partneran_dev in postgres server, choose owner : postgres
migrate :
sequelize db:migrate
edit users model, config passport-local-sequelize
testing :
db_partneran_dev
sequelize migration:create --name add_short_bio_to_users_table
MODULE IDEAS
sequelize model:create --name Ideas --attributes "ideaId:integer,title:string,description:string,status:string,image:str
ing,video:string"
sequelize db:migrate
add FK userId
sequelize migration:create --name add_FK_userId_to_Ideas_table
MODULE CATEGORIES
sequelize model:create --name Categories --attributes "categoryId:integer,name:string"
add FK categoryId to Ideas table
sequelize migration:create --name add_FK_categoryId_to_Ideas_table
sequelize migration:create --name add_slug_to_Ideas_table
create table comments :
sequelize model:create --name Comments --attributes "commentId:integer,content:text"
create table roles :
sequelize model:create --name Roles --attributes "roleId:integer,roles:string"
create table votes :
sequelize model:create --name Votes --attributes "voteId:integer,votes:string"
sequelize migration:create --name add_isSuper_column_to_users_table
create table reports :
sequelize model:create --name Reports --attributes "reportId:integer,reason:string,status:boolean"
create table notifications :
sequelize model:create --name Notifications --attributes "notificationId:integer,message:string,status:boolean"
create table user_notifs :
sequelize model:create --name User_notifs --attributes "user_notif_id:integer"
seeder Categories :
sequelize seed:create --name seed_categories
migrate seeder Categories
sequelize db:seed --seed seeders/20161212144451-seed_categories.js
add FK UserId to Ideas table
sequelize migration:create --name add_FK_UserId_to_Comments_table
add FK IdeaId to Ideas table
sequelize migration:create --name add_FK_IdeaId_to_Comments_table
add FK UserId to Roles table
sequelize migration:create --name add_FK_UserId_to_Roles_table
add FK IdeaId to Roles table
sequelize migration:create --name add_FK_IdeaId_to_Roles_table
add FK UserId to Votes table
sequelize migration:create --name add_FK_UserId_to_Votes_table
add FK IdeaId to Votes table
sequelize migration:create --name add_FK_IdeaId_to_Votes_table
add FK UserId to Reports table
sequelize migration:create --name add_FK_UserId_to_Reports_table
add FK IdeaId to Reports table
sequelize migration:create --name add_FK_IdeaId_to_Reports_table
add FK UserId to Notifications table
sequelize migration:create --name add_FK_UserId_to_Notifications_table
add FK IdeaId to Notifications table
sequelize migration:create --name add_FK_IdeaId_to_Notifications_table
add FK UserId to User_Notifs table
sequelize migration:create --name add_FK_UserId_to_User_Notifs_table
add FK IdeaId to User_Notifs table
sequelize migration:create --name add_FK_notificationId_to_User_Notifs_table
MODULE List_Approve
sequelize model:create --name List_approves --attributes "list_approve_id:integer,status:boolean"
add FK UserId to List_approves table
sequelize migration:create --name add_FK_UserId_to_User_List_approves_table
add FK IdeaId to List_approves table
sequelize migration:create --name add_FK_idead_to_User_List_approves_table
*/