-
Notifications
You must be signed in to change notification settings - Fork 20
/
ApiLink.php
44 lines (38 loc) · 1.03 KB
/
ApiLink.php
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
40
41
42
43
44
<?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
*
* @param LinkGenerator $linkGenerator
*/
public function __construct(LinkGenerator $linkGenerator)
{
$this->linkGenerator = $linkGenerator;
}
/**
* Create link to specified api endpoint
*
* @param EndpointInterface $endpoint
* @param array $params
*
* @return string
* @throws InvalidLinkException
*/
public function link(EndpointInterface $endpoint, $params = [])
{
$params = array_merge([
'version' => $endpoint->getVersion(),
'package' => $endpoint->getPackage(),
'apiAction' => $endpoint->getApiAction()
], $params);
return $this->linkGenerator->link('Api:Api:default', $params);
}
}