get bid for carrier returns a response object
This commit is contained in:
parent
d9581cf991
commit
e4c535201b
3 changed files with 36 additions and 10 deletions
|
|
@ -2,7 +2,6 @@
|
|||
|
||||
namespace FreightQuote\Bid\UseCases;
|
||||
|
||||
use FreightQuote\Bid\Bid;
|
||||
use FreightQuote\Bid\BidRepository;
|
||||
use InvalidArgumentException;
|
||||
|
||||
|
|
@ -15,19 +14,26 @@ class GetBidForCarrier
|
|||
/**
|
||||
* @throws InvalidArgumentException
|
||||
*/
|
||||
public function execute(GetBidForCarrierRequest $dto): ?Bid
|
||||
{
|
||||
public function execute(
|
||||
GetBidForCarrierRequest $dto,
|
||||
): GetBidForCarrierResponse {
|
||||
$bid = $this->bidRepo->find($dto->id);
|
||||
if ($bid === null) {
|
||||
throw new InvalidArgumentException('Bid not found!');
|
||||
}
|
||||
if ($bid->isClosed() === true) {
|
||||
return null;
|
||||
return new GetBidForCarrierResponse(
|
||||
isClosed: true,
|
||||
bid: null,
|
||||
);
|
||||
}
|
||||
if ($bid->getWasOpened() === false) {
|
||||
$bid->setWasOpened(true);
|
||||
$this->bidRepo->save($bid);
|
||||
}
|
||||
return $bid;
|
||||
return new GetBidForCarrierResponse(
|
||||
isClosed: false,
|
||||
bid: $bid,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
13
src/Bid/UseCases/GetBidForCarrierResponse.php
Normal file
13
src/Bid/UseCases/GetBidForCarrierResponse.php
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
<?php
|
||||
|
||||
namespace FreightQuote\Bid\UseCases;
|
||||
|
||||
use FreightQuote\Bid\Bid;
|
||||
|
||||
class GetBidForCarrierResponse
|
||||
{
|
||||
public function __construct(
|
||||
public bool $isClosed,
|
||||
public ?Bid $bid,
|
||||
) {}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue