feat: Change endpoint calls

Change the endpoint call so that there is an autocompletion.
This commit is contained in:
Michael Gerdemann
2020-01-17 16:32:02 +01:00
parent 8461d6f68d
commit 774c0ff8bf
2 changed files with 14 additions and 7 deletions

View File

@ -11,6 +11,8 @@ use Psr\Http\Message\ResponseInterface;
/** /**
* Gitea Client * Gitea Client
*
* @method Repositories repositories()
*/ */
class Client class Client
{ {
@ -45,18 +47,20 @@ class Client
} }
/** /**
* @param string $api * @param $method
* @param $args
* @return EndpointInterface * @return EndpointInterface
* @throws Exception * @throws Exception
*/ */
public function api(string $api): EndpointInterface public function __call($method, $args)
{ {
switch ($api) { $interfaceName = EndpointInterface::class;
case 'repositories': $endpointClassName = str_replace('\\EndpointInterface', '\\' . ucfirst($method), $interfaceName);
return new Repositories($this); if (class_exists($endpointClassName)) {
return new $endpointClassName($this);
} }
throw new Exception('Endpoint not found', 1579246217); throw new Exception('Endpoint "' . ucfirst($method) . '" not found!', 1579274712);
} }
/** /**

View File

@ -53,7 +53,10 @@ $giteaClient = new Avency\Gitea\Client(
// - - - - - // - - - - -
// Get a single repository // Get a single repository
$repository = $giteaClient->api('repositories')->get('owner', 'repoName'); $repository = $giteaClient->repositories()->get('owner', 'repoName');
// Get version
$repository = $giteaClient->miscellaneous()->version();
``` ```
## Versioning ## Versioning