From b0feaff051dceea2cea1eeafe75217d331754961 Mon Sep 17 00:00:00 2001 From: Morgan Bazalgette Date: Mon, 5 Mar 2018 19:15:26 +0100 Subject: [PATCH] remove beatmap requests --- methods/beatmaps.php | 48 ----------------------- methods/beatmaps/my_requests.php | 25 ------------ methods/beatmaps/request.php | 66 -------------------------------- methods/tournaments.php | 3 +- migrations/11.sql | 2 + 5 files changed, 3 insertions(+), 141 deletions(-) delete mode 100644 methods/beatmaps.php delete mode 100644 methods/beatmaps/my_requests.php delete mode 100644 methods/beatmaps/request.php create mode 100644 migrations/11.sql diff --git a/methods/beatmaps.php b/methods/beatmaps.php deleted file mode 100644 index 2876b21..0000000 --- a/methods/beatmaps.php +++ /dev/null @@ -1,48 +0,0 @@ -
"; - $tournament = (int) @$_GET["tournament"]; - $beatmaps = $state->db->fetchAll("SELECT beatmap, GROUP_CONCAT(category SEPARATOR ',') as category, COUNT(*) as popularity FROM beatmap_requests WHERE tournament = ? GROUP BY beatmap ORDER BY popularity DESC", [$tournament]); - - $categories = [ - [ - "NoMod", - "Hidden", - "HardRock", - "DoubleTime", - "FreeMod", - "Tiebreaker", - ], - [ - "NoMod", - "Hidden", - "HardRock", - "DoubleTime", - "FreeMod", - "Tiebreaker", - ], - [ - "NoMod", - "Hidden", - "HardRock", - "DoubleTime", - "Tiebreaker", - ], - [ - "NoMod", - "FreeMod", - "Tiebreaker", - ], - ]; - - echo ""; -} \ No newline at end of file diff --git a/methods/beatmaps/my_requests.php b/methods/beatmaps/my_requests.php deleted file mode 100644 index 1ad0706..0000000 --- a/methods/beatmaps/my_requests.php +++ /dev/null @@ -1,25 +0,0 @@ -getSelfID(); - if (!$uid) { - error_message("Missing or invalid session token.", 401); - return; - } - - $requests = $state->db->fetchAll( - "SELECT beatmap, category FROM beatmap_requests WHERE user = ? AND tournament = ?", - [$uid, (int) @$_GET["tourn_id"]] - ); - - array_walk($requests, function(&$request) { - $request["beatmap"] = (int) $request["beatmap"]; - $request["category"] = (int) $request["category"]; - }); - - echo json_encode([ - "ok" => true, - "requests" => $requests, - ]); -} diff --git a/methods/beatmaps/request.php b/methods/beatmaps/request.php deleted file mode 100644 index 9a2a0f6..0000000 --- a/methods/beatmaps/request.php +++ /dev/null @@ -1,66 +0,0 @@ -getSelfID(); - if (!$uid) { - error_message("Missing or invalid session token.", 401); - return; - } - - $tournID = (int) @$_GET["tourn_id"]; - if ($tournID === 0) { - error_message("Missing tournament parameter.", 401); - return; - } - - $tourn = $state->db->fetch("SELECT max_beatmap_requests, status FROM tournaments WHERE id = ? LIMIT 1", [$tournID]); - if (!$tourn) { - error_message("Tournament does not exist."); - return; - } - if ($tourn["max_beatmap_requests"] < 1 || $tourn["status"] > Status::RegClosedRequestsOpen) { - error_message("Tournament does not accept beatmap requests."); - return; - } - - // Decode POST body and check tournament is set - $maps = json_decode(file_get_contents('php://input')); - if ($maps === false || !is_array($maps)) { - error_message("Invalid JSON body", 422); - return; - } - - $sprintfString = "($tournID, $uid, %d, %d)"; - $inserts = []; - $retValues = []; - foreach ($maps as $map) { - if (!isset($map->beatmap) || ((int) $map->beatmap) < 1) - continue; - $inserts[] = sprintf($sprintfString, (int) $map->beatmap, (int) $map->category); - $retValues[] = [ - "beatmap" => (int) $map->beatmap, - "category" => (int) $map->category, - ]; - } - $inserts = array_slice(array_unique($inserts), 0, $tourn["max_beatmap_requests"]); - // We need array_values because when array_unique detects a duplicate, it - // converts the array to an assoc array, and thus in the response it is - // returned as an object, not an array. - $retValues = array_slice(array_values(array_unique($retValues, SORT_REGULAR)), 0, $tourn["max_beatmap_requests"]); - - $state->db->execute("DELETE FROM beatmap_requests WHERE user = ? AND tournament = ?", [$uid, $tournID]); - - if ($inserts > 0) { - $state->db->execute( - "INSERT INTO beatmap_requests(tournament, user, beatmap, category) VALUES " . implode(", ", $inserts) - ); - } - - echo json_encode([ - "ok" => true, - "requests" => $retValues, - ]); -} diff --git a/methods/tournaments.php b/methods/tournaments.php index f5ba4a4..b0ca666 100644 --- a/methods/tournaments.php +++ b/methods/tournaments.php @@ -16,7 +16,7 @@ function run_method($state) t.id, t.name, t.description, t.mode, t.status, t.status_data, t.created_at, t.updated_at, t.team_size, t.min_team_size, t.exclusivity_starts, - t.exclusivity_ends, t.max_beatmap_requests + t.exclusivity_ends FROM tournaments t "; $query .= build_where($parts); @@ -38,7 +38,6 @@ function walker(&$el, $key, $stateUser) $el["status"] = (int) $el["status"]; $el["team_size"] = (int) $el["team_size"]; $el["min_team_size"] = (int) $el["min_team_size"]; - $el["max_beatmap_requests"] = (int) $el["max_beatmap_requests"]; if (empty($el["status_data"])) { $el["status_data"] = null; diff --git a/migrations/11.sql b/migrations/11.sql new file mode 100644 index 0000000..90cfb18 --- /dev/null +++ b/migrations/11.sql @@ -0,0 +1,2 @@ +DROP TABLE beatmap_requests; +ALTER TABLE tournaments DROP COLUMN max_beatmap_requests;