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 16s

This commit is contained in:
Julien Froidefond
2025-12-15 15:33:14 +01:00
parent bbb0fbb9a1
commit 699de28868
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({