recipe-backend/src/endpoints/UserPoint.ts
2025-09-27 07:47:26 +02:00

45 lines
1.2 KiB
TypeScript

import { Router } from "express";
import { UserController } from "../controllers/UserController.js";
import { CreateUserRequestDto } from "../dtos/CreateUserRequestDto.js";
import { UserRepository } from "../repositories/UserRepository.js";
import { UserDtoEntityMapper } from "../mappers/UserDtoEntityMapper.js";
import { asyncHandler } from "../utils/asyncHandler.js";
/**
* Handles all user related routes
*/
const router = Router();
// Inject repo + mapper here
const userRepository = new UserRepository();
const userMapper = new UserDtoEntityMapper();
const userController = new UserController(userRepository, userMapper);
/**
* Create a new user
*/
router.post(
"/",
asyncHandler(async (req, res) => {
const requestDto: CreateUserRequestDto = req.body;
const responseDto = await userController.createUser(requestDto);
res.status(201).json(responseDto);
})
);
/**
* Get user data for current user
*/
router.get("/me",
asyncHandler(async (req, res) => {
const id = req.currentUser?.id;
if(id){
// it breaks here because id is no longer a uuid
const responseDto = await userController.getUserById(id);
res.status(201).json(responseDto);
}
})
);
export default router;