You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
213 lines
5.8 KiB
213 lines
5.8 KiB
<?php
|
|
// use Kirby\Cms\Page;
|
|
|
|
// // more validation is needed
|
|
// function addThrows($page, $site, $kirby){
|
|
// $json["status"] = "ok";
|
|
// $error = "";
|
|
// if (!$page->enddate()->isEmpty()) {
|
|
// $error = "Game ended";
|
|
// $json["status"] = "error";
|
|
// $json["error"] = $error;
|
|
// return $json;
|
|
// }
|
|
// $throws = $kirby->request()->get("throws");
|
|
// if (is_null($throws) || !is_array($throws)) {
|
|
// $error = "You have to pass throws as array";
|
|
// if ($error != "") {
|
|
// $json["status"] = "error";
|
|
// $json["error"] = $error;
|
|
// }
|
|
// return $json;
|
|
// }
|
|
// $checkoutTries = $kirby->request()->get("checkoutTries") ? intval($kirby->request()->get("checkoutTries")) : 0;
|
|
// $done = $kirby->request()->get("done");
|
|
// $numDarts = 3;
|
|
// if ($kirby->request()->get("numDarts")) {
|
|
// $numDarts = intval($kirby->request()->get("numDarts"));
|
|
// } elseif (!$done) {
|
|
// $numDarts = count($throws);
|
|
// }
|
|
// try {
|
|
// $page->addThrows($throws, $numDarts, $checkoutTries, $done);
|
|
// } catch (\Exception $e) {
|
|
// $error = $e->getMessage();
|
|
// }
|
|
// if ($error != "") {
|
|
// $json["status"] = "error";
|
|
// $json["error"] = $error;
|
|
// }
|
|
// return $json;
|
|
// }
|
|
|
|
// function deleteLastThrow($page, $site, $kirby){
|
|
// $json["status"] = "ok";
|
|
// $error = "";
|
|
// if (!$page->enddate()->isEmpty()) {
|
|
// $error = "Game ended";
|
|
// $json["status"] = "error";
|
|
// $json["error"] = $error;
|
|
// return $json;
|
|
// }
|
|
// $game = $page->rounds()->parseJSON();
|
|
// $set = &$game["sets"][count($game["sets"])-1];
|
|
// $leg = &$set["legs"][count($set["legs"])-1];
|
|
// $visit = &$leg["visits"][count($leg["visits"])-1];
|
|
|
|
// $completeVisit = $kirby->request()->get("visit");
|
|
// if (count($visit['throws']) > 0 && !$completeVisit) {
|
|
// array_pop($visit['throws']);
|
|
// $kirby->impersonate('kirby');
|
|
// $page = $page->update([
|
|
// 'rounds' => json_encode($game),
|
|
// ]);
|
|
// } else {
|
|
// // delete last visit. This means, delete 2 lasts and insert one.
|
|
// array_pop($leg["visits"]);
|
|
// if (count($leg["visits"]) == 0){
|
|
// array_pop($set["legs"]);
|
|
// if (count($set["legs"]) == 0){
|
|
// array_pop($game["sets"]);
|
|
// if (count($game["sets"]) == 0){
|
|
// $page = $page->initGame(false);
|
|
// $page->recalcStats();
|
|
// return $json;
|
|
// }
|
|
// }
|
|
// }
|
|
// $kirby->impersonate('kirby');
|
|
// $page = $page->update([
|
|
// 'rounds' => json_encode($game),
|
|
// ]);
|
|
// $page = $page->clearLastVisit();
|
|
// }
|
|
// $page = $page->recalcStats();
|
|
// if ($error != "") {
|
|
// $json["status"] = "error";
|
|
// $json["error"] = $error;
|
|
// }
|
|
// return $json;
|
|
// }
|
|
|
|
// function init($page, $site, $kirby){
|
|
// $json["status"] = "ok";
|
|
// $error = "";
|
|
// if ($page->rounds()->toString() != "") {
|
|
// $error = "Game already started, can not update";
|
|
// $json["status"] = "error";
|
|
// $json["error"] = $error;
|
|
// return $json;
|
|
// }
|
|
// $players = $kirby->request()->get("players");
|
|
// if (is_null($players) || !is_array($players) || count($players) == 0) {
|
|
// $error = "Players not given.";
|
|
// $json["status"] = "error";
|
|
// $json["error"] = $error;
|
|
// return $json;
|
|
// }
|
|
// foreach ($players as $i => $player) {
|
|
// try {
|
|
// if (page($player)->intendedTemplate() != "member") {
|
|
// $error = "Player is not a member ".page($player)->template();
|
|
// $json["status"] = "error";
|
|
// $json["error"] = $error;
|
|
// return $json;
|
|
// }
|
|
// } catch (\Exception $e) {
|
|
// $error = "Player not found".$e;
|
|
// $json["status"] = "error";
|
|
// $json["error"] = $error;
|
|
// return $json;
|
|
// }
|
|
// }
|
|
// $page = $page->reorderPlayer($players);
|
|
// $page->initGame();
|
|
|
|
// if ($error != "") {
|
|
// $json["status"] = "error";
|
|
// $json["error"] = $error;
|
|
// }
|
|
// return $json;
|
|
// }
|
|
|
|
// function update($page, $site, $kirby){
|
|
// $json["status"] = "ok";
|
|
// $error = "";
|
|
|
|
// // TODO check data for valid fields
|
|
// $kirby->impersonate('kirby');
|
|
// $data = $kirby->request()->get("data");
|
|
// $page = $page->update($data);
|
|
|
|
// if ($error != "") {
|
|
// $json["status"] = "error";
|
|
// $json["error"] = $error;
|
|
// }
|
|
// return $json;
|
|
// }
|
|
|
|
// return function ($page, $site, $kirby) {
|
|
// $error = "";
|
|
// $json = [];
|
|
// $type = "html";
|
|
// if ($kirby->request()->is('POST')) {
|
|
// $type = "json";
|
|
// $action = $kirby->request()->get("action");
|
|
// if ($action == "update") {
|
|
// $json = update($page, $site, $kirby);
|
|
// } elseif ($action == "init") {
|
|
// $json = init($page, $site, $kirby);
|
|
// } elseif ($action == "addThrows") {
|
|
// $json = addThrows($page, $site, $kirby);
|
|
// } elseif ($action == "deleteLastThrow") {
|
|
// $json = deleteLastThrow($page, $site, $kirby);
|
|
// } else {
|
|
// $json["error"] = "No known action defined";
|
|
// $json["status"] = "error";
|
|
// }
|
|
// }
|
|
|
|
// return [
|
|
// 'type' => $type,
|
|
// 'json' => $json,
|
|
// 'error' => $error
|
|
// ];
|
|
// };
|
|
|
|
function update($page, $site, $kirby){
|
|
$json["status"] = "ok";
|
|
$error = "";
|
|
|
|
// TODO check data for valid fields
|
|
$kirby->impersonate('kirby');
|
|
$data = $kirby->request()->get("data");
|
|
$page = $page->update($data);
|
|
|
|
if ($error != "") {
|
|
$json["status"] = "error";
|
|
$json["error"] = $error;
|
|
}
|
|
return $json;
|
|
}
|
|
|
|
return function ($page, $site, $kirby) {
|
|
$error = "";
|
|
$json = [];
|
|
$type = "html";
|
|
if ($kirby->request()->is('POST')) {
|
|
$type = "json";
|
|
$action = $kirby->request()->get("action");
|
|
if ($action == "update") {
|
|
$json = update($page, $site, $kirby);
|
|
} else {
|
|
$json["error"] = "No known action defined";
|
|
$json["status"] = "error";
|
|
}
|
|
}
|
|
|
|
return [
|
|
'type' => $type,
|
|
'json' => $json,
|
|
'error' => $error
|
|
];
|
|
}; |