Skip to content

Commit 016ffdf

Browse files
R4iljacobkissel
authored andcommitted
Query available drivers (#4)
Added possibility to query for next available driver, and also query for all available drivers. Also, changed the name of the eventbus to be specifically for driver.
1 parent d9a92fb commit 016ffdf

File tree

6 files changed

+49
-5
lines changed

6 files changed

+49
-5
lines changed

docker-compose-dev.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ services:
2121
- RABBIT_HOST=rabbitmq
2222
- MONGO_HOST=mongo
2323
ports:
24-
- "8080"
24+
- '8080'
2525
depends_on:
2626
- rabbitmq
2727
- mongo

docker-compose.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ services:
1919
- RABBIT_HOST=rabbitmq
2020
- MONGO_HOST=mongo
2121
ports:
22-
- "8080"
22+
- '8080'
2323
depends_on:
2424
- rabbitmq
2525
- mongo

src/main/java/org/aitesting/microservices/driver/query/service/controllers/DriverController.java

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,5 +42,23 @@ public ResponseEntity<Driver> getDriver(@PathVariable UUID id) {
4242
return new ResponseEntity<>(HttpStatus.NOT_FOUND);
4343
}
4444

45-
}
45+
@GetMapping("driver/available")
46+
public ResponseEntity<Driver> getAvailableDriver() {
47+
logger.info(String.format("Request for an available driver"));
48+
List<Driver> availableDrivers = driverRepository.findByAvailable(true);
49+
if(availableDrivers.size() > 0) {
50+
return new ResponseEntity<>(availableDrivers.get(0), HttpStatus.OK);
51+
}
52+
return new ResponseEntity<>(HttpStatus.BAD_REQUEST);
53+
}
4654

55+
@GetMapping("drivers/allavailable")
56+
public ResponseEntity<List<Driver>> getAllAvailableDrivers() {
57+
logger.info(String.format("Request for all available drivers"));
58+
List<Driver> availableDrivers =driverRepository.findByAvailable(true);
59+
if(availableDrivers.size() > 0) {
60+
return new ResponseEntity<>(availableDrivers, HttpStatus.OK);
61+
}
62+
return new ResponseEntity<>(HttpStatus.BAD_REQUEST);
63+
}
64+
}

src/main/java/org/aitesting/microservices/driver/query/service/repositories/DriverRepository.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,11 @@
33
import org.aitesting.microservices.driver.query.domain.models.Driver;
44
import org.springframework.data.mongodb.repository.MongoRepository;
55

6+
import java.util.List;
67
import java.util.UUID;
78

89
public interface DriverRepository extends MongoRepository<Driver, UUID> {
10+
11+
public List<Driver> findByAvailable(boolean b);
12+
913
}

src/main/resources/application.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ server:
1919
amqp:
2020
events:
2121
host: ${RABBIT_HOST:localhost}
22-
exchange-name: eventBus
23-
queue-name: eventQueue
22+
exchange-name: eventBusDriver
23+
queue-name: eventQueueDriver
2424
handlers: org.aitesting.microservices.driver.query.domain.eventhandlers
2525

2626
logging:

src/test/java/org/aitesting/microservices/driverquery/unit/DriverControllerUnitTests.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,4 +42,26 @@ public void getDriver_FindOneIsCalled() {
4242
//assert
4343
verify(driverRepository, times(1)).findOne(id1);
4444
}
45+
46+
@Test
47+
public void getAvailableDriver_FindByAvailableIsCalled() {
48+
//arrange
49+
50+
//act
51+
driverController.getAvailableDriver();
52+
53+
//assert
54+
verify(driverRepository, times(1)).findByAvailable(true);
55+
}
56+
57+
@Test
58+
public void getAllAvailableDrivers_FindByAvailableIsCalled() {
59+
//arrange
60+
61+
//act
62+
driverController.getAllAvailableDrivers();
63+
64+
//assert
65+
verify(driverRepository, times(1)).findByAvailable(true);
66+
}
4567
}

0 commit comments

Comments
 (0)