Refactor challenge access checks and update text encoding: Remove unnecessary session variable in update and delete challenge functions. Update text in ChallengeManagement and ChallengesSection components for proper HTML encoding, enhancing display consistency.
All checks were successful
Deploy with Docker Compose / deploy (push) Successful in 3m5s

This commit is contained in:
Julien Froidefond
2025-12-15 15:33:14 +01:00
parent f093977b34
commit 5e810202bb
4 changed files with 9 additions and 9 deletions

View File

@@ -97,7 +97,7 @@ export async function updateChallenge(
} }
) { ) {
try { try {
const session = await checkAdminAccess() await checkAdminAccess()
const challenge = await challengeService.updateChallenge(challengeId, { const challenge = await challengeService.updateChallenge(challengeId, {
title: data.title, title: data.title,
@@ -128,7 +128,7 @@ export async function updateChallenge(
export async function deleteChallenge(challengeId: string) { export async function deleteChallenge(challengeId: string) {
try { try {
const session = await checkAdminAccess() await checkAdminAccess()
await challengeService.deleteChallenge(challengeId) await challengeService.deleteChallenge(challengeId)

View File

@@ -196,7 +196,7 @@ export default function ChallengeManagement() {
{acceptedChallenges.length} défi{acceptedChallenges.length > 1 ? "s" : ""} en attente de validation {acceptedChallenges.length} défi{acceptedChallenges.length > 1 ? "s" : ""} en attente de validation
{pendingChallenges.length > 0 && ( {pendingChallenges.length > 0 && (
<span className="ml-2"> <span className="ml-2">
{pendingChallenges.length} défi{pendingChallenges.length > 1 ? "s" : ""} en attente d'acceptation {pendingChallenges.length} défi{pendingChallenges.length > 1 ? "s" : ""} en attente d&apos;acceptation
</span> </span>
)} )}
</div> </div>
@@ -241,7 +241,7 @@ export default function ChallengeManagement() {
? "bg-green-500/20 text-green-400" ? "bg-green-500/20 text-green-400"
: "bg-yellow-500/20 text-yellow-400" : "bg-yellow-500/20 text-yellow-400"
}`}> }`}>
{challenge.status === "ACCEPTED" ? "Accepté" : "En attente d'acceptation"} {challenge.status === "ACCEPTED" ? "Accepté" : "En attente d&apos;acceptation"}
</span> </span>
</div> </div>
{challenge.acceptedAt && ( {challenge.acceptedAt && (

View File

@@ -159,7 +159,7 @@ export default function ChallengesSection({ backgroundImage }: ChallengesSection
const getStatusLabel = (status: string) => { const getStatusLabel = (status: string) => {
switch (status) { switch (status) {
case "PENDING": case "PENDING":
return "En attente d'acceptation"; return "En attente d&apos;acceptation";
case "ACCEPTED": case "ACCEPTED":
return "Accepté - En attente de validation admin"; return "Accepté - En attente de validation admin";
case "COMPLETED": case "COMPLETED":
@@ -308,7 +308,7 @@ export default function ChallengesSection({ backgroundImage }: ChallengesSection
) : challenges.length === 0 ? ( ) : challenges.length === 0 ? (
<Card variant="dark" className="p-6 text-center"> <Card variant="dark" className="p-6 text-center">
<p className="text-gray-400"> <p className="text-gray-400">
Vous n'avez aucun défi pour le moment. Vous n&apos;avez aucun défi pour le moment.
</p> </p>
</Card> </Card>
) : ( ) : (

View File

@@ -4,7 +4,7 @@ import type {
ChallengeStatus, ChallengeStatus,
Prisma, Prisma,
} from "@/prisma/generated/prisma/client"; } from "@/prisma/generated/prisma/client";
import { ValidationError, NotFoundError, ConflictError } from "../errors"; import { ValidationError, NotFoundError } from "../errors";
export interface CreateChallengeInput { export interface CreateChallengeInput {
challengerId: string; challengerId: string;
@@ -293,13 +293,13 @@ export class ChallengeService {
updateData.status = data.status; updateData.status = data.status;
} }
if (data.adminId !== undefined) { if (data.adminId !== undefined) {
updateData.adminId = data.adminId; updateData.admin = data.adminId ? { connect: { id: data.adminId } } : { disconnect: true };
} }
if (data.adminComment !== undefined) { if (data.adminComment !== undefined) {
updateData.adminComment = data.adminComment; updateData.adminComment = data.adminComment;
} }
if (data.winnerId !== undefined) { if (data.winnerId !== undefined) {
updateData.winnerId = data.winnerId; updateData.winner = data.winnerId ? { connect: { id: data.winnerId } } : { disconnect: true };
} }
return prisma.challenge.update({ return prisma.challenge.update({