diff --git a/main.js b/main.js index 259dc99..9b15a39 100644 --- a/main.js +++ b/main.js @@ -12,7 +12,7 @@ import { displayUnlock, displayHint, } from "./pages/challenge"; -import { getScoreboard, getScoreboardDetail } from "./pages/scoreboard"; +import { getScoreboard, getScoreboardDetail, getBrackets } from "./pages/scoreboard"; import { updateSettings, generateToken, deleteToken } from "./pages/settings"; import { userSolves, userFails, userAwards } from "./pages/users"; import { @@ -136,6 +136,7 @@ const pages = { scoreboard: { getScoreboard, getScoreboardDetail, + getBrackets, }, settings: { updateSettings, diff --git a/pages/scoreboard.js b/pages/scoreboard.js index e015196..4156a34 100644 --- a/pages/scoreboard.js +++ b/pages/scoreboard.js @@ -1,17 +1,33 @@ import CTFd from "../main"; -export async function getScoreboard() { - const response = await CTFd.fetch("/api/v1/scoreboard", { +export async function getScoreboard(bracketId = null) { + let url = "/api/v1/scoreboard"; + if (bracketId) { + url = `${url}&bracket_id=${bracketId}`; + } + const response = await CTFd.fetch(url, { method: "GET", }); const body = await response.json(); return body["data"]; // scoreboard data } -export async function getScoreboardDetail(count) { - const response = await CTFd.fetch(`/api/v1/scoreboard/top/${count}`, { +export async function getScoreboardDetail(count, bracketId = null) { + let url = `/api/v1/scoreboard/top/${count}`; + if (bracketId) { + url = `${url}&bracket_id=${bracketId}`; + } + const response = await CTFd.fetch(url, { method: "GET", }); const body = await response.json(); return body["data"]; // scoreboard data } + +export async function getBrackets(userMode) { + const response = await CTFd.fetch(`/api/v1/brackets?type=${userMode}`, { + method: "GET", + }); + const body = await response.json(); + return body["data"]; +}