Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const express = require("express");
- const path = require("path");
- const bodyParser = require("body-parser");
- const { check } = require("express-validator/check");
- const serverPort = process.env.PORT || 8888;
- const authentication = require("./authentication.js");
- /* Controllers */
- const announceCtrl = require("./controllers/announceController.js");
- const locationCtrl = require("./controllers/locationController.js");
- const loginCtrl = require("./controllers/loginController.js");
- const contactCtrl = require("./controllers/contactController.js");
- const registrationCtrl = require("./controllers/registrationController.js");
- var app = express();
- /* --------------------------------------------------------------------- */
- /* --------------------------- Api Router ------------------------------ */
- /* --------------------------------------------------------------------- */
- var apiRouter = express.Router();
- // body-parser middleware
- apiRouter.use(bodyParser.json());
- apiRouter.use(bodyParser.urlencoded({ extended: false }));
- apiRouter.use(function(req, res, next) {
- res.header("Access-Control-Allow-Origin", "*");
- res.header("Access-Control-Allow-Methods", "GET,PUT,POST,DELETE,OPTIONS");
- res.header(
- "Access-Control-Allow-Headers",
- "Origin, Authorization, X-Access-Token, X-Requested-With, Content-Type, token"
- );
- next();
- });
- // Authentication Router
- var authRouter = express.Router();
- authRouter.use(authentication.checkToken);
- //Authencticated routes
- var moderationMode = function(req, res, next) {
- req.mode = "MODERATE";
- next();
- };
- var consultMode = function(req, res, next) {
- req.mode = "CONSULT";
- next();
- };
- authRouter.get("/announces", consultMode, announceCtrl.getAllAnnounces);
- authRouter.get("/announces/:id", consultMode, announceCtrl.getAnnounceById);
- authRouter.post("/announces", consultMode, announceCtrl.createAnnounce);
- authRouter.delete("/announces/:id", consultMode, announceCtrl.deleteAnnounce);
- authRouter.put("/announces/:id", consultMode, announceCtrl.updateAnnounce);
- authRouter.get("/location/regions", locationCtrl.getAllRegions);
- authRouter.get(
- "/location/:region/departements",
- locationCtrl.getDepartementsInRegion
- );
- authRouter.get("/contacts/:id", contactCtrl.getContactById);
- authRouter.get("/nom", contactCtrl.getNameById);
- authRouter.get("/pagecse", contactCtrl.getContenu);
- authRouter.post("/updateB", contactCtrl.setBillet);
- authRouter.post("/updateV", contactCtrl.setVacances);
- authRouter.post("/updateA", contactCtrl.setVente);
- authRouter.get(
- "/recherche",
- [
- check("famille").isAlpha(),
- check("activite").isAlpha(),
- check("region").isAlpha(),
- check("dept").isAlpha(),
- check("qtmax").isNumeric(),
- check("qtmin").isNumeric(),
- check("exp").isAfter(new Date())
- ],
- announceCtrl.searchAnnounce
- );
- authRouter.get(
- "/moderation/announces",
- moderationMode,
- announceCtrl.getAllAnnounces
- );
- authRouter.get(
- "/moderation/announces/:id",
- moderationMode,
- announceCtrl.getAnnounceById
- );
- authRouter.post(
- "/moderation/announces/",
- moderationMode,
- announceCtrl.updateAnnounce
- );
- authRouter.get(
- "/moderation/subscriptions",
- moderationMode,
- registrationCtrl.getPendingSubscriptions
- );
- authRouter.post(
- "/moderation/subscriptions",
- moderationMode,
- registrationCtrl.validateSubscriptions
- );
- apiRouter.options("*", (req, res, next) => {
- res.status(200).send();
- }); //Quand le navigateur t'envoie une requête OPTIONS
- //Il faut toujours répondre OK sinon il boude.
- apiRouter.get("/login", loginCtrl.handler);
- apiRouter.post("/register", registrationCtrl.register);
- apiRouter.use(authRouter);
- //Unhandled routes
- apiRouter.all("*", (req, res, next) => {
- res.status(404).json({
- success: false,
- message: "Resource not found"
- });
- });
- /* --------------------------------------------------------------------- */
- /* --------------------------------------------------------------------- */
- /* --------------------------------------------------------------------- */
- app.use(express.static(path.join(__dirname, "frontend/build")));
- app.use("/api", apiRouter);
- if (process.env.NODE_ENV == "production") {
- app.get("*", (req, res) => {
- res.sendFile(path.join(__dirname + "/frontend/build/index.html"));
- });
- }
- app.listen(serverPort, function() {
- console.log("Server started on port " + serverPort);
- });
- /*
- * 200 OK
- * 201 Created
- * 202 Accepted
- * 204 No Content
- * 400 Bad Request
- * 401 Unauthorized
- * 402 Payment Required
- * 403 Forbidden
- * 404 Not Found
- * 409 Conflict
- * 411 Length Required
- * 500 Internal Server Error
- * 502 Bad Gateway ou Proxy Error
- * 503 Service Unavailable
- * 504 Gateway Time-out
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement