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
All checks were successful
Deploy with Docker Compose / deploy (push) Successful in 16s
This commit is contained in:
@@ -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)
|
||||||
|
|
||||||
|
|||||||
@@ -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'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'acceptation"}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
{challenge.acceptedAt && (
|
{challenge.acceptedAt && (
|
||||||
|
|||||||
@@ -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'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'avez aucun défi pour le moment.
|
||||||
</p>
|
</p>
|
||||||
</Card>
|
</Card>
|
||||||
) : (
|
) : (
|
||||||
|
|||||||
@@ -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({
|
||||||
|
|||||||
Reference in New Issue
Block a user