Handle nonexistent PLZs

This commit is contained in:
Jannis Portmann 2022-01-17 17:11:38 +01:00
parent 7a3749c105
commit 8e7da7511a
2 changed files with 22 additions and 13 deletions

View file

@ -6,7 +6,6 @@ use App\Entity\Offering;
use App\Form\OfferingFormType;
use App\Form\OfferFilterFormType;
use App\Repository\OfferingRepository;
use App\Repository\WishRepository;
@ -34,7 +33,7 @@ class OfferController extends AbstractController
}
#[Route('/offers', name: 'offers')]
public function distanceExample(Environment $twig, Request $request, OfferingRepository $offerRepository, PlzToCoordinate $plzconverter, DistanceCalculator $distanceCalculator): Response
public function showAll(Environment $twig, Request $request, OfferingRepository $offerRepository, PlzToCoordinate $plzconverter, DistanceCalculator $distanceCalculator): Response
{
$form = $this->createForm(OfferFilterFormType::class);
$form->handleRequest($request);
@ -46,25 +45,30 @@ class OfferController extends AbstractController
$filterDistance = $form->get('distance')->getData();
$filterPlz = $form->get('zipCode')->getData();
$filterCoordinate = $plzconverter->convertPlzToCoordinate($filterPlz);
foreach ($allOffers as $offer) {
$offerCoordinate = $offer->getCoordinate();
$distance = $distanceCalculator->calculateDistance($offerCoordinate, $filterCoordinate);
if ($distance < $filterDistance) {
array_push($filteredOffers, $offer);
if ($filterCoordinate != null) {
foreach ($allOffers as $offer) {
$offerCoordinate = $offer->getCoordinate();
$distance = $distanceCalculator->calculateDistance($offerCoordinate, $filterCoordinate);
if ($distance < $filterDistance) {
array_push($filteredOffers, $offer);
}
}
}
else {
$this->addFlash("error", "The PLZ was not found!");
}
}
else {
$filteredOffers = $allOffers;
}
return new Response($twig->render('offer/index.html.twig', [
return $this->render('offer/index.html.twig', [
'offers' => $filteredOffers,
'filter_form' => $form->createView()
]));
]);
}
#[Route('/new', name: 'new_offer')]

View file

@ -9,6 +9,11 @@
{{ message }}
</div>
{% endfor %}
{% for message in app.flashes('error') %}
<div class="alert alert-danger" role="alert">
{{ message }}
</div>
{% endfor %}
<h2><i class="fas fa-filter"></i>Filter</h2>
{{ form_start(filter_form) }}
@ -53,6 +58,6 @@
{% endfor %}
</div>
{% else %}
<div class="alert alert-warning" role="alert">There are currently no active offers.</div>
<div class="alert alert-warning" role="alert">There are no active offers with the current filter.</div>
{% endif %}
{% endblock %}