Refactor, add traits

This commit is contained in:
Oliver Davies 2020-05-31 00:39:48 +01:00
parent 506b5689fe
commit 0426632a08
4 changed files with 41 additions and 17 deletions

View file

@ -5,28 +5,21 @@ declare(strict_types=1);
namespace Opdavies\Glassboxx\Request;
use Opdavies\Glassboxx\Config;
use Opdavies\Glassboxx\Traits\UsesConfigTrait;
use Symfony\Component\HttpClient\HttpClient;
use Symfony\Contracts\HttpClient\HttpClientInterface;
abstract class AbstractRequest
{
use UsesConfigTrait;
public const BASE_URL = 'https://server.glassboxx.co.uk/rest/V1';
/** @var HttpClient */
protected $client;
/** @var Config */
protected $config;
public function __construct(HttpClientInterface $client)
{
$this->client = $client;
}
public function withConfig(Config $config): AbstractRequest
{
$this->config = $config;
return $this;
}
}

View file

@ -4,10 +4,13 @@ declare(strict_types=1);
namespace Opdavies\Glassboxx\Request;
use Opdavies\Glassboxx\Traits\UsesAuthTokenTrait;
use Opdavies\Glassboxx\ValueObject\CustomerInterface;
final class CustomerRequest extends AbstractRequest
{
use UsesAuthTokenTrait;
public const ENDPOINT = '/glassboxxorder/customCustomer';
/** @var string */
@ -23,13 +26,6 @@ final class CustomerRequest extends AbstractRequest
return $this;
}
public function withAuthToken(string $authToken): self
{
$this->authToken = $authToken;
return $this;
}
public function execute(): string
{
$body = [

View file

@ -0,0 +1,15 @@
<?php
declare(strict_types=1);
namespace Opdavies\Glassboxx\Traits;
trait UsesAuthTokenTrait
{
public function withAuthToken(string $authToken): self
{
$this->authToken = $authToken;
return $this;
}
}

View file

@ -0,0 +1,20 @@
<?php
declare(strict_types=1);
namespace Opdavies\Glassboxx\Traits;
use Opdavies\Glassboxx\Config;
trait UsesConfigTrait
{
/** @var Config */
protected $config;
public function withConfig(Config $config): self
{
$this->config = $config;
return $this;
}
}