deguapp/api/src/routes/api_v1.ts

43 lines
1.7 KiB
TypeScript

import { Router } from "express";
import multer from "multer";
import path from "path";
import * as authController from "../controllers/authController";
import * as beerController from "../controllers/beerController";
import * as docsController from "../controllers/docsController";
import * as reviewController from "../controllers/reviewController";
import { requireAuth } from "../middlewares/authMiddleware";
import validate from "../middlewares/validateRequest";
import valMulter from "../middlewares/validateMulterRequest";
import * as AuthVal from "../validators/authValidator";
import * as BVal from "../validators/beerValidator";
import * as RVal from "../validators/reviewValidator";
const upload = multer({ dest: path.resolve(__dirname, "../../uploads") });
const router = Router();
router.get("/", docsController.docs_get);
router.post("/auth/signup", validate(AuthVal.signup), authController.signup_post);
router.post("/auth/signin", validate(AuthVal.signin), authController.signin_post);
router.post("/auth/logout", requireAuth, authController.logout_post);
router.get("/auth/status", requireAuth, authController.status_get);
router.post(
"/beer/add",
[requireAuth, upload.array("photos", 4), valMulter, validate(BVal.add)],
beerController.add_post,
);
router.get("/beer/get", [requireAuth], beerController.get_get);
router.post("/beer/del", [requireAuth, validate(BVal.del)], beerController.del_post);
router.post(
"/beer/edit",
[requireAuth, upload.array("photos", 4), valMulter, validate(BVal.edit)],
beerController.edit_post,
);
router.post("/review/add", [requireAuth, validate(RVal.add)], reviewController.add_post);
router.get("/review/get", requireAuth, reviewController.get_get);
export default router;