UI & Feature update - Alpha #9
@@ -19,11 +19,11 @@ import {
|
|||||||
UseInterceptors,
|
UseInterceptors,
|
||||||
} from "@nestjs/common";
|
} from "@nestjs/common";
|
||||||
import { FileInterceptor } from "@nestjs/platform-express";
|
import { FileInterceptor } from "@nestjs/platform-express";
|
||||||
import type { Request, Response } from "express";
|
import type { Response } from "express";
|
||||||
|
import { Roles } from "../auth/decorators/roles.decorator";
|
||||||
import { AuthGuard } from "../auth/guards/auth.guard";
|
import { AuthGuard } from "../auth/guards/auth.guard";
|
||||||
import { OptionalAuthGuard } from "../auth/guards/optional-auth.guard";
|
import { OptionalAuthGuard } from "../auth/guards/optional-auth.guard";
|
||||||
import { RolesGuard } from "../auth/guards/roles.guard";
|
import { RolesGuard } from "../auth/guards/roles.guard";
|
||||||
import { Roles } from "../auth/decorators/roles.decorator";
|
|
||||||
import type { AuthenticatedRequest } from "../common/interfaces/request.interface";
|
import type { AuthenticatedRequest } from "../common/interfaces/request.interface";
|
||||||
import { ContentsService } from "./contents.service";
|
import { ContentsService } from "./contents.service";
|
||||||
import { CreateContentDto } from "./dto/create-content.dto";
|
import { CreateContentDto } from "./dto/create-content.dto";
|
||||||
@@ -144,10 +144,7 @@ export class ContentsController {
|
|||||||
@Req() req: AuthenticatedRequest,
|
@Req() req: AuthenticatedRequest,
|
||||||
@Res() res: Response,
|
@Res() res: Response,
|
||||||
) {
|
) {
|
||||||
const content = await this.contentsService.findOne(
|
const content = await this.contentsService.findOne(idOrSlug, req.user?.sub);
|
||||||
idOrSlug,
|
|
||||||
req.user?.sub,
|
|
||||||
);
|
|
||||||
if (!content) {
|
if (!content) {
|
||||||
throw new NotFoundException("Contenu non trouvé");
|
throw new NotFoundException("Contenu non trouvé");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -135,7 +135,8 @@ export class ContentsRepository {
|
|||||||
fileSize: contents.fileSize,
|
fileSize: contents.fileSize,
|
||||||
views: contents.views,
|
views: contents.views,
|
||||||
usageCount: contents.usageCount,
|
usageCount: contents.usageCount,
|
||||||
favoritesCount: sql<number>`(SELECT count(*) FROM ${favorites} WHERE ${favorites.contentId} = ${contents.id})`.mapWith(
|
favoritesCount:
|
||||||
|
sql<number>`(SELECT count(*) FROM ${favorites} WHERE ${favorites.contentId} = ${contents.id})`.mapWith(
|
||||||
Number,
|
Number,
|
||||||
),
|
),
|
||||||
isLiked: userId
|
isLiked: userId
|
||||||
@@ -235,7 +236,8 @@ export class ContentsRepository {
|
|||||||
fileSize: contents.fileSize,
|
fileSize: contents.fileSize,
|
||||||
views: contents.views,
|
views: contents.views,
|
||||||
usageCount: contents.usageCount,
|
usageCount: contents.usageCount,
|
||||||
favoritesCount: sql<number>`(SELECT count(*) FROM ${favorites} WHERE ${favorites.contentId} = ${contents.id})`.mapWith(
|
favoritesCount:
|
||||||
|
sql<number>`(SELECT count(*) FROM ${favorites} WHERE ${favorites.contentId} = ${contents.id})`.mapWith(
|
||||||
Number,
|
Number,
|
||||||
),
|
),
|
||||||
isLiked: userId
|
isLiked: userId
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ import {
|
|||||||
CardHeader,
|
CardHeader,
|
||||||
} from "@/components/ui/card";
|
} from "@/components/ui/card";
|
||||||
import { useAuth } from "@/providers/auth-provider";
|
import { useAuth } from "@/providers/auth-provider";
|
||||||
|
import { ContentService } from "@/services/content.service";
|
||||||
import { FavoriteService } from "@/services/favorite.service";
|
import { FavoriteService } from "@/services/favorite.service";
|
||||||
import type { Content } from "@/types/content";
|
import type { Content } from "@/types/content";
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user