| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- <?php
- /**
- * v3 API Controller file.
- *
- * Provides a class to handle all posible API requests.
- *
- * @category Constroller
- */
- /**
- * v3 API controller.
- *
- * Handles every API request.
- *
- * @category Controller
- */
- class API_Controller {
- /**
- * Constructor.
- *
- * Handles every request, creating the required models and selecting the
- * view.
- *
- * @param mixed[] $query GET parameters of the request.
- */
- public function __construct($query){
- // Remove host
- array_shift($query);
- // Remove /API/
- array_shift($query);
- // Remove /v3/
- array_shift($query);
- // API call: Use API controller
- $method = $_SERVER["REQUEST_METHOD"];
- if (!in_array($method, ["GET", "POST", "PUT", "DELETE"])){
- $method = "GET";
- }
- if (count($query) == 0 || $query[0] == null || $query[0] == ""){
- require_once(__DIR__ . "/main.php");
- }
- else{
- $command = strtolower($query[0]);
- // Remove /<command>/
- array_shift($query);
- switch ($command){
- case "help":
- require_once(__DIR__ . "/help/index.php");
- break;
- case "profile":
- case "run":
- case "logbook":
- case "collection":
- case "run":
- case "units":
- if (file_exists(__DIR__ . "/$command/$method.php")){
- require_once(__DIR__ . "/$command/$method.php");
- }
- else{
- header("HTTP/1.1 404");
- }
- break;
- /*case "update_profile":
- require_once(__DIR__ . "/update_profile.php");
- break;
- case "update_logbook":
- require_once(__DIR__ . "/update_logbook.php");
- break;
- case "update_collection":
- require_once(__DIR__ . "/update_collection.php");
- break;
- case "log_run_dungeon":
- require_once(__DIR__ . "/log_run_dungeon.php");
- break;
- case "log_run_dh":
- require_once(__DIR__ . "/log_run_dh.php");
- break;
- case "log_run_scenario":
- require_once(__DIR__ . "/log_run_scenario.php");
- break;
- case "log_run_toa":
- require_once(__DIR__ . "/log_run_toa.php");
- break;
- case "log_run_rift_dungeon":
- require_once(__DIR__ . "/log_run_rift_dungeon.php");
- break;
- case "units":
- require_once(__DIR__ . "/units.php");
- break;*/
- default:
- header("HTTP/1.1 404");
- }
- }
- }
- }
- ?>
|