create carrier files
controller, entity, repository, creation use case and corresponding request dto
This commit is contained in:
parent
8a7d919be9
commit
4ff6cb9879
5 changed files with 88 additions and 0 deletions
26
src/Carrier/Carrier.php
Normal file
26
src/Carrier/Carrier.php
Normal file
|
|
@ -0,0 +1,26 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace FreightQuote\Carrier;
|
||||||
|
|
||||||
|
class Carrier
|
||||||
|
{
|
||||||
|
public function __construct(
|
||||||
|
private ?int $id,
|
||||||
|
private string $email,
|
||||||
|
) {}
|
||||||
|
|
||||||
|
public function getId(): ?int
|
||||||
|
{
|
||||||
|
return $this->id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function setId(int $id): void
|
||||||
|
{
|
||||||
|
$this->id = $id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getEmail(): string
|
||||||
|
{
|
||||||
|
return $this->email;
|
||||||
|
}
|
||||||
|
}
|
||||||
21
src/Carrier/CarrierController.php
Normal file
21
src/Carrier/CarrierController.php
Normal file
|
|
@ -0,0 +1,21 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace FreightQuote\Carrier;
|
||||||
|
|
||||||
|
use Psr\Http\Message\ResponseInterface as Response;
|
||||||
|
use Psr\Http\Message\ServerRequestInterface as Request;
|
||||||
|
use Slim\Views\Twig;
|
||||||
|
|
||||||
|
class CarrierController
|
||||||
|
{
|
||||||
|
public function page(Request $request, Response $response): Response
|
||||||
|
{
|
||||||
|
$twig = Twig::fromRequest($request);
|
||||||
|
|
||||||
|
return $twig->render($response, 'carriers.html.twig');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function create(Request $request, Response $response): Response
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
9
src/Carrier/CarrierRepository.php
Normal file
9
src/Carrier/CarrierRepository.php
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace FreightQuote\Carrier;
|
||||||
|
|
||||||
|
interface CarrierRepository
|
||||||
|
{
|
||||||
|
public function find(int $id): ?Carrier;
|
||||||
|
public function save(Carrier $carrier): Carrier;
|
||||||
|
}
|
||||||
21
src/Carrier/UseCases/CreateCarrier.php
Normal file
21
src/Carrier/UseCases/CreateCarrier.php
Normal file
|
|
@ -0,0 +1,21 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace FreightQuote\Carrier\UseCases;
|
||||||
|
|
||||||
|
use FreightQuote\Carrier\Carrier;
|
||||||
|
use FreightQuote\Carrier\CarrierRepository;
|
||||||
|
|
||||||
|
class CreateCarrier
|
||||||
|
{
|
||||||
|
public function __construct(
|
||||||
|
private CreateCarrierRequest $dto,
|
||||||
|
private CarrierRepository $carrierRepo,
|
||||||
|
) {}
|
||||||
|
|
||||||
|
public function execute(): Carrier
|
||||||
|
{
|
||||||
|
$carrier = new Carrier($this->dto->id, $this->dto->email);
|
||||||
|
|
||||||
|
return $this->carrierRepo->save($carrier);
|
||||||
|
}
|
||||||
|
}
|
||||||
11
src/Carrier/UseCases/CreateCarrierRequest.php
Normal file
11
src/Carrier/UseCases/CreateCarrierRequest.php
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace FreightQuote\Carrier\UseCases;
|
||||||
|
|
||||||
|
class CreateCarrierRequest
|
||||||
|
{
|
||||||
|
public function __construct(
|
||||||
|
public ?int $id,
|
||||||
|
public string $email,
|
||||||
|
) {}
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue