50 lines
1.3 KiB
JavaScript
50 lines
1.3 KiB
JavaScript
require("dotenv").config();
|
|
const express = require("express");
|
|
const cors = require("cors");
|
|
const User = require("./models/user.model");
|
|
|
|
|
|
|
|
const app = express();
|
|
app.use(express.json());
|
|
|
|
const allowedOrigins = [
|
|
"http://localhost:3000",
|
|
"https://costco.nicosaya.com",
|
|
"https://costco.api.nicosaya.com",
|
|
];
|
|
app.use(
|
|
cors({
|
|
origin: function (origin, callback) {
|
|
if (!origin) return callback(null, true);
|
|
if (allowedOrigins.includes(origin)) return callback(null, true);
|
|
if (/^http:\/\/192\.168\.\d+\.\d+/.test(origin)) return callback(null, true);
|
|
if (/^https:\/\/192\.168\.\d+\.\d+/.test(origin)) return callback(null, true);
|
|
callback(new Error("Not allowed by CORS"));
|
|
},
|
|
methods: ["GET", "POST", "PUT", "DELETE"],
|
|
})
|
|
);
|
|
|
|
app.get('/', async (req, res) => {
|
|
resText = `Grocery List API is running.\n` +
|
|
`Roles available: ${Object.values(User.ROLES).join(', ')}`
|
|
|
|
res.status(200).type("text/plain").send(resText);
|
|
});
|
|
|
|
|
|
const authRoutes = require("./routes/auth.routes");
|
|
app.use("/auth", authRoutes);
|
|
|
|
const listRoutes = require("./routes/list.routes");
|
|
app.use("/list", listRoutes);
|
|
|
|
const adminRoutes = require("./routes/admin.routes");
|
|
app.use("/admin", adminRoutes);
|
|
|
|
const usersRoutes = require("./routes/users.routes");
|
|
app.use("/users", usersRoutes);
|
|
|
|
|
|
module.exports = app; |