Added method executeMethod() to \KimchiAPI > KimchiAPI
This commit is contained in:
parent
78f10145b2
commit
8b4248d07c
|
@ -5,7 +5,7 @@
|
||||||
use Exception;
|
use Exception;
|
||||||
use Throwable;
|
use Throwable;
|
||||||
|
|
||||||
class MethodNotFondException extends Exception
|
class MethodNotFoundException extends Exception
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* @param string $message
|
* @param string $message
|
|
@ -3,9 +3,13 @@
|
||||||
namespace KimchiAPI;
|
namespace KimchiAPI;
|
||||||
|
|
||||||
// Define server information for response headers
|
// Define server information for response headers
|
||||||
|
use Exception;
|
||||||
use KimchiAPI\Exceptions\MethodAlreadyRegisteredException;
|
use KimchiAPI\Exceptions\MethodAlreadyRegisteredException;
|
||||||
|
use KimchiAPI\Exceptions\MethodNotFoundException;
|
||||||
use KimchiAPI\Exceptions\MissingComponentsException;
|
use KimchiAPI\Exceptions\MissingComponentsException;
|
||||||
use KimchiAPI\Interfaces\MethodInterface;
|
use KimchiAPI\Interfaces\MethodInterface;
|
||||||
|
use KimchiAPI\Objects\Request;
|
||||||
|
use KimchiAPI\Objects\Response;
|
||||||
use KimchiAPI\Utilities\Converter;
|
use KimchiAPI\Utilities\Converter;
|
||||||
use RuntimeException;
|
use RuntimeException;
|
||||||
|
|
||||||
|
@ -75,4 +79,28 @@
|
||||||
$this->methods = $methods_clean;
|
$this->methods = $methods_clean;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Executes a method in the server and returns the response
|
||||||
|
*
|
||||||
|
* @param Request $request
|
||||||
|
* @return Response
|
||||||
|
*/
|
||||||
|
public function executeMethod(Request $request): ?Response
|
||||||
|
{
|
||||||
|
if(isset($this->methods[$request->Method]) == false)
|
||||||
|
{
|
||||||
|
$truncated_method = Converter::truncateString($request->Method, 20);
|
||||||
|
return Response::fromException(new MethodNotFoundException("The requested method '" . $truncated_method . "' was not found."));
|
||||||
|
}
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
return $this->methods[$request->Method]->execute($request);
|
||||||
|
}
|
||||||
|
catch(Exception $e)
|
||||||
|
{
|
||||||
|
return Response::fromException($e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
Loading…
Reference in New Issue