-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.js
More file actions
107 lines (94 loc) · 3.3 KB
/
index.js
File metadata and controls
107 lines (94 loc) · 3.3 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
const cors = require("cors");
const express = require("express");
require("dotenv").config();
const { auth } = require("express-oauth2-jwt-bearer");
const checkJwt = auth({
audience: process.env.AUTH_AUDIENCE,
issuerBaseURL: process.env.AUTH_ISSUER_BASE_URL,
});
const PORT = process.env.PORT || 3000;
const UserRouter = require("./routers/userRouter");
const ListingRouter = require("./routers/listingRouter");
const LocationRouter = require("./routers/locationRouter");
const PropertyTypeRouter = require("./routers/propertyTypeRouter");
const RoomTypeRouter = require("./routers/roomTypeRouter");
const LikeRouter = require("./routers/likeRouter");
const GooglePlacesRouter = require("./routers/googlePlacesRouter");
const ChatGptRouter = require("./routers/chatGptRouter");
const UserController = require("./controllers/userController");
const ListingController = require("./controllers/listingController");
const LocationController = require("./controllers/locationController");
const PropertyTypeController = require("./controllers/propertyTypeController");
const RoomTypeController = require("./controllers/roomTypeController");
const LikeController = require("./controllers/likeController");
const GooglePlacesController = require("./controllers/googlePlacesController");
const ChatGptController = require("./controllers/chatGptController");
const db = require("./db/models/index");
const {
comment,
file,
like,
listing,
location,
propertyType,
roomType,
user,
userListing,
userReview,
} = db;
const userController = new UserController(user);
const listingController = new ListingController(
listing,
comment,
file,
like,
location,
propertyType,
roomType,
user
);
const locationController = new LocationController(location);
const propertyTypeController = new PropertyTypeController(propertyType);
const roomTypeController = new RoomTypeController(roomType);
const likeController = new LikeController(
like,
listing,
location,
propertyType,
roomType,
file
);
const googlePlacesController = new GooglePlacesController();
const chatGptController = new ChatGptController();
const userRouter = new UserRouter(userController).routes();
const listingRouter = new ListingRouter(listingController, checkJwt).routes();
const locationRouter = new LocationRouter(locationController).routes();
const propertyTypeRouter = new PropertyTypeRouter(
propertyTypeController
).routes();
const roomTypeRouter = new RoomTypeRouter(roomTypeController).routes();
const likeRouter = new LikeRouter(likeController).routes();
const googlePlacesRouter = new GooglePlacesRouter(
googlePlacesController
).routes();
const chatGptRouter = new ChatGptRouter(chatGptController).routes();
// ToDo: Add in Netlify deployed link
const allowedOrigins = [process.env.FRONTEND];
const corsOptions = {
origin: allowedOrigins,
};
const app = express();
app.use(cors(corsOptions));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use("/users", userRouter);
app.use("/listings", listingRouter);
app.use("/locations", locationRouter);
app.use("/property-type", propertyTypeRouter);
app.use("/room-type", roomTypeRouter);
app.use("/likes", likeRouter);
app.use("/places", googlePlacesRouter);
app.use("/chatgpt", chatGptRouter);
app.listen(PORT, () => {
console.log(`Express app listening on port ${PORT}!`);
});