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