From 774c0ff8bfcc4029f76f832633a159fa64af4e12 Mon Sep 17 00:00:00 2001 From: Michael Gerdemann Date: Fri, 17 Jan 2020 16:32:02 +0100 Subject: [PATCH] feat: Change endpoint calls Change the endpoint call so that there is an autocompletion. --- Classes/Client.php | 16 ++++++++++------ README.md | 5 ++++- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/Classes/Client.php b/Classes/Client.php index c0d170c..89d5dd7 100644 --- a/Classes/Client.php +++ b/Classes/Client.php @@ -11,6 +11,8 @@ use Psr\Http\Message\ResponseInterface; /** * Gitea Client + * + * @method Repositories repositories() */ class Client { @@ -45,18 +47,20 @@ class Client } /** - * @param string $api + * @param $method + * @param $args * @return EndpointInterface * @throws Exception */ - public function api(string $api): EndpointInterface + public function __call($method, $args) { - switch ($api) { - case 'repositories': - return new Repositories($this); + $interfaceName = EndpointInterface::class; + $endpointClassName = str_replace('\\EndpointInterface', '\\' . ucfirst($method), $interfaceName); + if (class_exists($endpointClassName)) { + return new $endpointClassName($this); } - throw new Exception('Endpoint not found', 1579246217); + throw new Exception('Endpoint "' . ucfirst($method) . '" not found!', 1579274712); } /** diff --git a/README.md b/README.md index a2580ba..1631af4 100644 --- a/README.md +++ b/README.md @@ -53,7 +53,10 @@ $giteaClient = new Avency\Gitea\Client( // - - - - - // Get a single repository -$repository = $giteaClient->api('repositories')->get('owner', 'repoName'); +$repository = $giteaClient->repositories()->get('owner', 'repoName'); + +// Get version +$repository = $giteaClient->miscellaneous()->version(); ``` ## Versioning