RestBuilder::make()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 9
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 5
c 1
b 0
f 0
dl 0
loc 9
rs 10
cc 2
nc 2
nop 3
1
<?php
2
3
namespace Carpenstar\ByBitAPI\Core\Builders;
4
5
use Carpenstar\ByBitAPI\Core\Auth\Credentials;
6
use Carpenstar\ByBitAPI\Core\Interfaces\IEndpointInterface;
7
use Carpenstar\ByBitAPI\Core\Interfaces\IParametersInterface;
8
use Carpenstar\ByBitAPI\Core\Interfaces\IRestFabricInterface;
9
10
class RestBuilder implements IRestFabricInterface
11
{
12
    /**
13
     * @param string $className
14
     * @param IParametersInterface|null $data
15
     * @return IEndpointInterface
16
     * @throws \Exception
17
     */
18
    public static function make(string $className, Credentials $credentials, ?IParametersInterface $parameters = null): IEndpointInterface
19
    {
20
        if (!in_array(IEndpointInterface::class, class_implements($className))) {
21
            throw new \Exception("That endpoint {$className} must be implement the interface " . IEndpointInterface::class . "!");
22
        }
23
24
        return (new $className())
25
            ->setCredentials($credentials)
26
            ->bindRequestParameters($parameters);
27
    }
28
}
29