-
Notifications
You must be signed in to change notification settings - Fork 22
Expand file tree
/
Copy pathApiLink.php
More file actions
39 lines (33 loc) · 942 Bytes
/
ApiLink.php
File metadata and controls
39 lines (33 loc) · 942 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?php
declare(strict_types=1);
namespace Tomaj\NetteApi\Link;
use Nette\Application\LinkGenerator;
use Nette\Application\UI\InvalidLinkException;
use Tomaj\NetteApi\EndpointInterface;
class ApiLink
{
/** @var LinkGenerator */
private $linkGenerator;
/**
* Create ApiLink
*/
public function __construct(LinkGenerator $linkGenerator)
{
$this->linkGenerator = $linkGenerator;
}
/**
* Create link to specified api endpoint
*
* @param array<mixed> $params
* @throws InvalidLinkException
*/
public function link(EndpointInterface $endpoint, $params = []): string
{
$params = array_merge([
'version' => $endpoint->getVersion(),
'package' => $endpoint->getPackage(),
'apiAction' => $endpoint->getApiAction(),
], $params);
return $this->linkGenerator->link('Api:Api:default', $params) ?: '';
}
}