Files
memegoat/backend/src/favorites/favorites.controller.ts
Mathis HERRIOT 92ea36545a feat: add FavoritesModule with service, controller, and CRUD endpoints
Implemented FavoritesModule to manage user favorites. Includes service methods for adding, removing, and listing favorites, along with appropriate database integrations and API endpoints.
2026-01-08 15:26:05 +01:00

44 lines
1.1 KiB
TypeScript

import {
Controller,
DefaultValuePipe,
Delete,
Get,
Param,
ParseIntPipe,
Post,
Query,
Req,
UseGuards,
} from "@nestjs/common";
import { AuthGuard } from "../auth/guards/auth.guard";
import type { AuthenticatedRequest } from "../common/interfaces/request.interface";
import { FavoritesService } from "./favorites.service";
@UseGuards(AuthGuard)
@Controller("favorites")
export class FavoritesController {
constructor(private readonly favoritesService: FavoritesService) {}
@Post(":contentId")
add(@Req() req: AuthenticatedRequest, @Param("contentId") contentId: string) {
return this.favoritesService.addFavorite(req.user.sub, contentId);
}
@Delete(":contentId")
remove(
@Req() req: AuthenticatedRequest,
@Param("contentId") contentId: string,
) {
return this.favoritesService.removeFavorite(req.user.sub, contentId);
}
@Get()
list(
@Req() req: AuthenticatedRequest,
@Query("limit", new DefaultValuePipe(10), ParseIntPipe) limit: number,
@Query("offset", new DefaultValuePipe(0), ParseIntPipe) offset: number,
) {
return this.favoritesService.getUserFavorites(req.user.sub, limit, offset);
}
}