From b10d4645957fb821715c4be588de2a1e3e8ed044 Mon Sep 17 00:00:00 2001 From: Kevin Chung Date: Fri, 15 Aug 2025 04:15:46 -0400 Subject: [PATCH 1/2] Add function to submit rating against /api/v1/challenges/[challenge_id]/ratings --- main.js | 2 ++ pages/challenge.js | 10 ++++++++++ 2 files changed, 12 insertions(+) diff --git a/main.js b/main.js index a6ccf17..33ee536 100644 --- a/main.js +++ b/main.js @@ -15,6 +15,7 @@ import { displaySolution, displayHintUnlock, displaySolutionUnlock, + submitRating, } from "./pages/challenge"; import { getScoreboard, getScoreboardDetail, getBrackets } from "./pages/scoreboard"; import { updateSettings, generateToken, deleteToken } from "./pages/settings"; @@ -143,6 +144,7 @@ const pages = { displayHint, loadSolution, displaySolution, + submitRating, }, challenges: { getChallenges, diff --git a/pages/challenge.js b/pages/challenge.js index 2a73952..c698c4c 100644 --- a/pages/challenge.js +++ b/pages/challenge.js @@ -163,3 +163,13 @@ export async function displaySolution(solutionId) { } } } + +export async function submitRating(challengeId, rating) { + const response = await CTFd.fetch(`/api/v1/challenges/${challengeId}/ratings`, { + method: "PUT", + body: JSON.stringify({ value: rating }), + }); + + const body = await response.json(); + return body["data"]; +} From 9cae894b39d72130b3d1372fbac57e3e5ad801da Mon Sep 17 00:00:00 2001 From: Kevin Chung Date: Sat, 16 Aug 2025 03:35:34 -0400 Subject: [PATCH 2/2] Add challenge rating review --- pages/challenge.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pages/challenge.js b/pages/challenge.js index c698c4c..7c61c5f 100644 --- a/pages/challenge.js +++ b/pages/challenge.js @@ -164,10 +164,10 @@ export async function displaySolution(solutionId) { } } -export async function submitRating(challengeId, rating) { +export async function submitRating(challengeId, rating, review) { const response = await CTFd.fetch(`/api/v1/challenges/${challengeId}/ratings`, { method: "PUT", - body: JSON.stringify({ value: rating }), + body: JSON.stringify({ value: rating, review: review }), }); const body = await response.json();