federator/php/api/v1/dummy.php

93 lines
2.3 KiB
PHP

<?php
/**
* SPDX-FileCopyrightText: 2024 Sascha Nitsch (grumpydeveloper) https://contentnation.net/@grumpydevelop
* SPDX-License-Identifier: GPL-3.0-or-later
*
* @author Sascha Nitsch (grumpydeveloper)
**/
namespace Federator\Api\V1;
/**
* dummy api class for functional poc
*/
class Dummy implements \Federator\Api\V1
{
/** @var \Main $main main instance */
private $main;
/** @var Array<string, string> $message internal message to output */
private $message = [];
/**
* constructor
* @param \Main $main main instance
*/
public function __construct(\Federator\Main $main)
{
$this->main = $main;
}
/**
* run given url path
* @param string[] $paths path array split by /
* @return bool true on success
*/
public function exec($paths) : bool
{
$method = $_SERVER["REQUEST_METHOD"];
switch ($method) {
case 'GET':
switch (sizeof($paths)) {
case 3:
if ($paths[2] === 'moo') {
return $this->getDummy();
}
}
break;
case 'POST':
switch (sizeof($paths)) {
case 3:
if ($paths[2] === 'moo') {
return $this->postDummy();
}
break;
}
}
$this->main->setResponseCode(404);
return false;
}
/**
* get function for "/v1/dummy/moo"
*/
public function getDummy(): bool
{
$this->message = [
'r1' => ' (__) ',
'r2' => ' `------(oo) ',
'r3' => ' || __ (__) ',
'r4' => ' ||w || ',
'r5' => ' '
];
return true;
}
/**
* post function for /v1/dummy/moo"
*/
public function postDummy() : bool
{
return $this->getDummy();
}
/**
* get internal represenation as json string
* @return string json string
*/
public function toJson() : string
{
return json_encode($this->message, JSON_PRETTY_PRINT) . "\n";
}
}