add phone number, notes, and contact person to carrier

This commit is contained in:
Yisroel Baum 2025-11-10 11:14:32 +02:00
parent f37868f0d0
commit a739479e22
Signed by: yisroelbaum
GPG key ID: 0FA60884F75520A9
9 changed files with 88 additions and 6 deletions

View file

@ -8,6 +8,9 @@ class Carrier
private ?int $id, private ?int $id,
private string $email, private string $email,
private string $companyName, private string $companyName,
private string $contactPerson,
private string $phoneNumber,
private string $notes,
) {} ) {}
public function getId(): ?int public function getId(): ?int
@ -29,4 +32,19 @@ class Carrier
{ {
return $this->companyName; return $this->companyName;
} }
public function getContactPerson(): string
{
return $this->contactPerson;
}
public function getPhoneNumber(): string
{
return $this->phoneNumber;
}
public function getNotes(): string
{
return $this->notes;
}
} }

View file

@ -32,7 +32,10 @@ class CarrierController
$body = $request->getParsedBody(); $body = $request->getParsedBody();
$dto = new CreateCarrierRequest( $dto = new CreateCarrierRequest(
$body['email'], $body['email'],
$body['companyName'], $body['company_name'],
$body['contact_person'],
$body['phone_number'],
$body['notes'],
); );
$useCase = new CreateCarrier($dto, $this->carrierRepo); $useCase = new CreateCarrier($dto, $this->carrierRepo);
$useCase->execute(); $useCase->execute();

View file

@ -31,6 +31,9 @@ class FlatFileCarrierRepository implements CarrierRepository
$jsonCarrier['id'], $jsonCarrier['id'],
$jsonCarrier['email'], $jsonCarrier['email'],
$jsonCarrier['companyName'], $jsonCarrier['companyName'],
$jsonCarrier['contactPerson'],
$jsonCarrier['phoneNumber'],
$jsonCarrier['notes'],
); );
} }
} }
@ -38,6 +41,9 @@ class FlatFileCarrierRepository implements CarrierRepository
'id' => $this->autoIncrementId($data), 'id' => $this->autoIncrementId($data),
'email' => $carrier->getEmail(), 'email' => $carrier->getEmail(),
'companyName' => $carrier->getCompanyName(), 'companyName' => $carrier->getCompanyName(),
'contactPerson' => $carrier->getContactPerson(),
'phoneNumber' => $carrier->getPhoneNumber(),
'notes' => $carrier->getNotes(),
]; ];
$data[] = $newCarrier; $data[] = $newCarrier;
file_put_contents( file_put_contents(
@ -48,6 +54,9 @@ class FlatFileCarrierRepository implements CarrierRepository
$newCarrier['id'], $newCarrier['id'],
$newCarrier['email'], $newCarrier['email'],
$newCarrier['companyName'], $newCarrier['companyName'],
$newCarrier['contactPerson'],
$newCarrier['phoneNumber'],
$newCarrier['notes'],
); );
} }
@ -60,7 +69,10 @@ class FlatFileCarrierRepository implements CarrierRepository
return new Carrier( return new Carrier(
$carrier['id'], $carrier['id'],
$carrier['email'], $carrier['email'],
$carrier['companyName'] $carrier['companyName'],
$carrier['contactPerson'],
$carrier['phoneNumber'],
$carrier['notes'],
); );
}, $this->getCarrierData()); }, $this->getCarrierData());
} }

View file

@ -17,7 +17,10 @@ class CreateCarrier
$carrier = new Carrier( $carrier = new Carrier(
null, null,
$this->dto->email, $this->dto->email,
$this->dto->companyName $this->dto->companyName,
$this->dto->contactPerson,
$this->dto->phoneNumber,
$this->dto->notes,
); );
return $this->carrierRepo->save($carrier); return $this->carrierRepo->save($carrier);

View file

@ -7,5 +7,8 @@ class CreateCarrierRequest
public function __construct( public function __construct(
public string $email, public string $email,
public string $companyName, public string $companyName,
public string $contactPerson,
public string $phoneNumber,
public string $notes,
) {} ) {}
} }

View file

@ -12,6 +12,9 @@ $carriers = [
'id' => 0, 'id' => 0,
'email' => 'carrier@test.com', 'email' => 'carrier@test.com',
'companyName' => 'test Company', 'companyName' => 'test Company',
'contactPerson' => 'Joe Shmoe',
'phoneNumber' => '123456789',
'notes' => 'some notes',
], ],
]; ];

View file

@ -17,6 +17,9 @@ class FakeCarrierRepository implements CarrierRepository
$id, $id,
$carrier->getEmail(), $carrier->getEmail(),
$carrier->getCompanyName(), $carrier->getCompanyName(),
$carrier->getContactPerson(),
$carrier->getPhoneNumber(),
$carrier->getNotes(),
); );
} }
} }
@ -37,6 +40,9 @@ class FakeCarrierRepository implements CarrierRepository
$id, $id,
$carrier->getEmail(), $carrier->getEmail(),
$carrier->getCompanyName(), $carrier->getCompanyName(),
$carrier->getContactPerson(),
$carrier->getPhoneNumber(),
$carrier->getNotes(),
); );
} }
@ -52,6 +58,9 @@ class FakeCarrierRepository implements CarrierRepository
$carrier->getId(), $carrier->getId(),
$carrier->getEmail(), $carrier->getEmail(),
$carrier->getCompanyName(), $carrier->getCompanyName(),
$carrier->getContactPerson(),
$carrier->getPhoneNumber(),
$carrier->getNotes(),
); );
}, $this->existingCarriers); }, $this->existingCarriers);
} }

View file

@ -13,12 +13,24 @@ class CreateCarrierTest extends TestCase
{ {
$email = 'joe@shmoe.com'; $email = 'joe@shmoe.com';
$company = 'test company'; $company = 'test company';
$contactPerson = 'Joe Shmoe';
$phoneNumber = '132456798';
$notes = 'some notes';
$carrierRepo = new FakeCarrierRepository(); $carrierRepo = new FakeCarrierRepository();
$dto = new CreateCarrierRequest($email, $company); $dto = new CreateCarrierRequest(
$email,
$company,
$contactPerson,
$phoneNumber,
$notes,
);
$useCase = new CreateCarrier($dto, $carrierRepo); $useCase = new CreateCarrier($dto, $carrierRepo);
$response = $useCase->execute(); $response = $useCase->execute();
$foundCarrier = $carrierRepo->find($response->getId()); $foundCarrier = $carrierRepo->find($response->getId());
$this->assertEquals($email, $foundCarrier->getEmail()); $this->assertEquals($email, $foundCarrier->getEmail());
$this->assertEquals($company, $foundCarrier->getCompanyName()); $this->assertEquals($company, $foundCarrier->getCompanyName());
$this->assertEquals($contactPerson, $foundCarrier->getContactPerson());
$this->assertEquals($phoneNumber, $foundCarrier->getPhoneNumber());
$this->assertEquals($notes, $foundCarrier->getNotes());
} }
} }

View file

@ -11,12 +11,31 @@ class GetAllCarriersTest extends TestCase
{ {
public function test_get_one_carrier(): void public function test_get_one_carrier(): void
{ {
$email = 'email@email.com';
$company = 'test Company';
$contactPerson = 'joe shmoe';
$phoneNumber = '123456798';
$notes = 'some notes';
$repo = new FakeCarrierRepository(); $repo = new FakeCarrierRepository();
$repo->save(new Carrier(0, 'email@email.com', 'test Company')); $repo->save(new Carrier(
0,
$email,
$company,
$contactPerson,
$phoneNumber,
$notes,
));
$useCase = new GetAllCarriers($repo); $useCase = new GetAllCarriers($repo);
$response = $useCase->execute(); $response = $useCase->execute();
$this->assertEquals( $this->assertEquals(
[new Carrier(0, 'email@email.com', 'test Company')], [new Carrier(
0,
$email,
$company,
$contactPerson,
$phoneNumber,
$notes,
)],
$response $response
); );
} }