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
*
* @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);
}
/**

View File

@ -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