forked from rocketacademy/project3-backend-bootcamp
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
139 lines (127 loc) · 3.72 KB
/
index.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
const cors = require("cors");
const express = require("express");
require("dotenv").config();
const { auth } = require("express-oauth2-jwt-bearer");
const PORT = process.env.PORT || 3000;
const app = express();
const checkJwt = auth({
audience: process.env.AUTH_AUDIENCE,
issuerBaseURL: process.env.AUTH_DOMAIN,
});
// Import routers
const UsersRouter = require("./routers/usersRouter");
const BooksRouter = require("./routers/booksRouter");
const FriendsRouter = require("./routers/friendsRouter");
const LibraryRouter = require("./routers/libraryRouter");
const ReviewsRouter = require("./routers/reviewsRouter");
const CollectionsRouter = require("./routers/collectionsRouter");
const DiscussionsRouter = require("./routers/discussionsRouter");
const ActivitiesRouter = require("./routers/activitiesRouter");
// Import controllers
const UsersController = require("./controllers/usersController");
const BooksController = require("./controllers/booksController");
const FriendsController = require("./controllers/friendsController");
const LibraryController = require("./controllers/libraryController");
const ReviewsController = require("./controllers/reviewsController");
const CollectionsController = require("./controllers/collectionsController");
const DiscussionsController = require("./controllers/discussionsController");
const ActivitiesController = require("./controllers/activitiesController");
// Import db
const db = require("./db/models/index");
const {
user,
book,
friendrequest,
friendrequeststatus,
userbook,
readingstatus,
bookreview,
collection,
discussion,
activity,
} = db;
// Initialise controllers
const usersController = new UsersController(user);
const booksController = new BooksController(book);
const activitiesController = new ActivitiesController(
activity,
user,
book,
bookreview,
userbook,
collection,
discussion
);
const friendsController = new FriendsController(
user,
friendrequest,
friendrequeststatus,
activity
);
const libraryController = new LibraryController(
userbook,
book,
readingstatus,
user,
activity
);
const reviewsController = new ReviewsController(
bookreview,
book,
user,
activity
);
const collectionsController = new CollectionsController(
collection,
book,
user,
activity
);
const discussionsController = new DiscussionsController(
discussion,
book,
user,
activity
);
// Initialise routers
const usersRouter = new UsersRouter(usersController, checkJwt).routes();
const booksRouter = new BooksRouter(booksController, checkJwt).routes();
const activitiesRouter = new ActivitiesRouter(
activitiesController,
checkJwt
).routes();
const friendsRouter = new FriendsRouter(friendsController, checkJwt).routes();
const libraryRouter = new LibraryRouter(libraryController, checkJwt).routes();
const reviewsRouter = new ReviewsRouter(reviewsController, checkJwt).routes();
const collectionsRouter = new CollectionsRouter(
collectionsController,
checkJwt
).routes();
const discussionsRouter = new DiscussionsRouter(
discussionsController,
checkJwt
).routes();
// Enable CORS
app.use(cors());
// Setup middleware
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
// Use routers
app.use((req, res, next) => {
console.log(req.headers.authorization); // Print the Authorization header
next();
});
app.use("/users", usersRouter);
app.use("/books", booksRouter);
app.use("/feed", activitiesRouter);
app.use("/friends", friendsRouter);
app.use("/library", libraryRouter);
app.use("/reviews", reviewsRouter);
app.use("/collections", collectionsRouter);
app.use("/discussions", discussionsRouter);
app.get("/", (req, res) => {
res.send("Hello, World!");
});
app.listen(PORT, () => {
console.log(`Express app listening on port ${PORT}!`);
});