RestBuilder   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 17
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 2
eloc 6
c 1
b 0
f 0
dl 0
loc 17
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
A make() 0 9 2
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