Skip to content

Commit

Permalink
Search-api fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
p8pepe committed Sep 11, 2015
1 parent 8a4ac34 commit 43d1844
Show file tree
Hide file tree
Showing 8 changed files with 20 additions and 26 deletions.
6 changes: 5 additions & 1 deletion app/config/services.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,4 +38,8 @@ services:
class: AppBundle\Command\UpdateAvailableBikesFromProviderCommand
tags:
- { name: console.command }
arguments: [@cocoders.trm24.parser, @cocoders.use_case.update_available_bikes]
arguments: [@cocoders.trm24.parser, @cocoders.use_case.update_available_bikes]

cocoders.found_docking_stations:
class: Cocoders\InMemory\CityBike\FoundDockingStations
arguments: ["@cocoders.repository.docking_station"]
7 changes: 2 additions & 5 deletions features/bootstrap/PublicTransportUserContext.php
Original file line number Diff line number Diff line change
Expand Up @@ -31,16 +31,14 @@ class PublicTransportUserContext implements Context, SnippetAcceptingContext
public function __construct()
{
$this->dockingStations = new \Cocoders\InMemory\CityBike\DockingStations();
$this->foundDockingStations = new \Cocoders\InMemory\CityBike\FoundDockingStations();
$this->foundDockingStations = new \Cocoders\InMemory\CityBike\FoundDockingStations($this->dockingStations);
}

/**
* @Given there are such docking stations:
*/
public function thereAreSuchDockingStations(TableNode $table)
{
$this->dockingStations->removeAll();

foreach ($table->getHash() as $row) {
$dockingStation = new \Cocoders\CityBike\DockingStation(
$row['id'],
Expand All @@ -60,10 +58,9 @@ public function thereAreSuchDockingStations(TableNode $table)
*/
public function iAmSearchingNearestBikeDockingStationsFromMyPosisitonWhichIs($positionString)
{
$dockingStations = $this->dockingStations->findAll();
$this->nearestDockingStations = $this
->foundDockingStations
->search(Position::fromString($positionString), $dockingStations)
->search(Position::fromString($positionString))
;
}

Expand Down
7 changes: 2 additions & 5 deletions src/AppBundle/Controller/ApiController.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
namespace AppBundle\Controller;

use Cocoders\CityBike\Position;
use Cocoders\InMemory\CityBike\FoundDockingStations;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\JsonResponse;
Expand All @@ -15,10 +14,8 @@ class ApiController extends Controller
*/
public function indexAction($lat, $long)
{
$dockingStationsService = new FoundDockingStations();

$foundDockingStations = $dockingStationsService
->search(new Position($lat, $long), $this->get('cocoders.repository.docking_station')->findAll());
$foundDockingStations = $this->get('cocoders.found_docking_stations')
->search(new Position($lat, $long));

return new JsonResponse($foundDockingStations);
}
Expand Down
2 changes: 0 additions & 2 deletions src/Cocoders/CityBike/DockingStations.php
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,4 @@ public function findAll();
* @return DockingStation
*/
public function find($id);

public function removeAll();
}
3 changes: 1 addition & 2 deletions src/Cocoders/CityBike/FoundDockingStations.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,8 @@ interface FoundDockingStations
{
/**
* @param Position $startPosition
* @param DockingStation[] $dockingStations
* @return FoundDockingStation[]
*/
public function search(Position $startPosition, $dockingStations);
public function search(Position $startPosition);
}

5 changes: 0 additions & 5 deletions src/Cocoders/File/CityBike/DockingStationsFileRepository.php
Original file line number Diff line number Diff line change
Expand Up @@ -45,9 +45,4 @@ public function find($id)
{
return $this->stationsRepo->findById($id);
}

public function removeAll()
{
$this->stationsRepo->clear();
}
}
5 changes: 0 additions & 5 deletions src/Cocoders/InMemory/CityBike/DockingStations.php
Original file line number Diff line number Diff line change
Expand Up @@ -39,9 +39,4 @@ public function find($id)
}
return null;
}

public function removeAll()
{
$this->stations = [];
}
}
11 changes: 10 additions & 1 deletion src/Cocoders/InMemory/CityBike/FoundDockingStations.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,20 +3,29 @@
namespace Cocoders\InMemory\CityBike;

use Cocoders\CityBike\DockingStation;
use Cocoders\CityBike\DockingStations as DockingStationsRepository;
use Cocoders\CityBike\FoundDockingStation;
use Cocoders\CityBike\FoundDockingStations as FoundDockingStationsInterface;
use Cocoders\CityBike\Position;

final class FoundDockingStations implements FoundDockingStationsInterface
{
private $dockingStationsRepository;

public function __construct(DockingStationsRepository $dockingStations)
{
$this->dockingStationsRepository = $dockingStations;
}
/**
* @param Position $startPosition
* @param DockingStation[] $dockingStations
* @return FoundDockingStation[]
*/
public function search(Position $startPosition, $dockingStations)
public function search(Position $startPosition)
{
$dockingStations = $this->dockingStationsRepository->findAll();
$foundDockingStations = [];

foreach ($dockingStations as $dockingStation) {
$foundDockingStations[] = FoundDockingStation::fromDockingStationAndDistance(
$dockingStation,
Expand Down

0 comments on commit 43d1844

Please sign in to comment.