Package com.unosquare.carmigo.controller
Class JourneyController
java.lang.Object
com.unosquare.carmigo.controller.JourneyController
Handles Journey APIs.
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionorg.springframework.http.ResponseEntity<?>
addCurrentPassengerToJourney
(int journeyId) Enables logged-in user, as a passenger, to be a passenger of this journey.org.springframework.http.ResponseEntity<?>
addPassengerToThisJourney
(int journeyId, int passengerId) Enables logged-in admin users to add this passenger to this journey.org.springframework.http.ResponseEntity<DistanceResponse>
calculateDistance
(@Valid DistanceRequest distanceRequest) Enables users to search for the distance of two points.org.springframework.http.ResponseEntity<JourneyResponse>
createJourney
(@Valid JourneyRequest journeyRequest) Enables logged-in user, as a driver, to create a journey.org.springframework.http.ResponseEntity<JourneyResponse>
createJourneyByDriverId
(int driverId, @Valid JourneyRequest journeyRequest) Enables logged-in admin users to create a journey for a driver.org.springframework.http.ResponseEntity<?>
deleteJourney
(int journeyId) Enables logged-in admin users or the driver who owns this journey to delete.org.springframework.http.ResponseEntity<JourneyResponse>
getJourneyById
(int journeyId) Enables logged-in admin users to search for a specific journey.org.springframework.http.ResponseEntity<List<JourneyResponse>>
Enables logged-in user, as a driver, to search for their journeys.org.springframework.http.ResponseEntity<List<JourneyResponse>>
Enables logged-in user, as a passenger, to search their journeys.org.springframework.http.ResponseEntity<List<JourneyResponse>>
getJourneysByDriverId
(int driverId) Enables logged-in admin users to search for journeys of a driver.org.springframework.http.ResponseEntity<List<JourneyResponse>>
getJourneysByPassengerId
(int passengerId) Enables logged-in admin users to search for journeys of a passenger.org.springframework.http.ResponseEntity<JourneyResponse>
patchJourney
(int journeyId, @Valid com.github.fge.jsonpatch.JsonPatch patch) Enables logged-in admin users or the driver who owns this journey to make correction.org.springframework.http.ResponseEntity<?>
removeCurrentPassengerFromJourney
(int journeyId) Enables a user, as a passenger, to no longer be part of this journey.org.springframework.http.ResponseEntity<?>
removePassengerFromThisJourney
(int journeyId, int passengerId) Enables logged-in admin users to remove a passenger from a journey.org.springframework.http.ResponseEntity<List<JourneyResponse>>
searchJourneys
(@Valid SearchJourneysRequest searchJourneysRequest) Enables users to search for journeys.
-
Constructor Details
-
JourneyController
public JourneyController()
-
-
Method Details
-
getJourneyById
@GetMapping(value="/{journeyId}", produces="application/json") @PreAuthorize("hasAuthority(\'ADMIN\')") public org.springframework.http.ResponseEntity<JourneyResponse> getJourneyById(@PathVariable int journeyId) Enables logged-in admin users to search for a specific journey.- Parameters:
journeyId
- the journey's id.- Returns:
- Response body as
JourneyResponse
.
-
searchJourneys
@GetMapping(value="/search", produces="application/json") public org.springframework.http.ResponseEntity<List<JourneyResponse>> searchJourneys(@Valid @Valid SearchJourneysRequest searchJourneysRequest) Enables users to search for journeys. No need of authentication.- Parameters:
searchJourneysRequest
- Request body asSearchJourneysRequest
.- Returns:
- Response body as List of
JourneyResponse
.
-
getJourneysByCurrentDriver
@GetMapping(value="/drivers/my-journeys", produces="application/json") @PreAuthorize("hasAuthority(\'ACTIVE\') or hasAuthority(\'SUSPENDED\') or hasAuthority(\'ADMIN\') or hasAuthority(\'DEV\')") public org.springframework.http.ResponseEntity<List<JourneyResponse>> getJourneysByCurrentDriver()Enables logged-in user, as a driver, to search for their journeys.- Returns:
- Response body as List of
JourneyResponse
.
-
getJourneysByDriverId
@GetMapping(value="/drivers/{driverId}", produces="application/json") @PreAuthorize("hasAuthority(\'ADMIN\')") public org.springframework.http.ResponseEntity<List<JourneyResponse>> getJourneysByDriverId(@PathVariable int driverId) Enables logged-in admin users to search for journeys of a driver.- Parameters:
driverId
- the driver's id.- Returns:
- Response body as List of
JourneyResponse
.
-
getJourneysByCurrentPassenger
@GetMapping(value="/passengers/my-journeys", produces="application/json") @PreAuthorize("hasAuthority(\'ACTIVE\') or hasAuthority(\'SUSPENDED\') or hasAuthority(\'ADMIN\') or hasAuthority(\'DEV\')") public org.springframework.http.ResponseEntity<List<JourneyResponse>> getJourneysByCurrentPassenger()Enables logged-in user, as a passenger, to search their journeys.- Returns:
- Response body as List of
JourneyResponse
.
-
getJourneysByPassengerId
@GetMapping(value="/passengers/{passengerId}", produces="application/json") @PreAuthorize("hasAuthority(\'ADMIN\')") public org.springframework.http.ResponseEntity<List<JourneyResponse>> getJourneysByPassengerId(@PathVariable int passengerId) Enables logged-in admin users to search for journeys of a passenger.- Parameters:
passengerId
- the passenger's id.- Returns:
- Response body as List of
JourneyResponse
.
-
createJourney
@PostMapping(produces="application/json") @PreAuthorize("hasAuthority(\'ACTIVE\') or hasAuthority(\'ADMIN\')") public org.springframework.http.ResponseEntity<JourneyResponse> createJourney(@Valid @RequestBody @Valid JourneyRequest journeyRequest) Enables logged-in user, as a driver, to create a journey.- Parameters:
journeyRequest
- Request body asJourneyRequest
.- Returns:
- Response body as
JourneyResponse
.
-
createJourneyByDriverId
@PostMapping(value="/drivers/{driverId}", produces="application/json") @PreAuthorize("hasAuthority(\'ADMIN\')") public org.springframework.http.ResponseEntity<JourneyResponse> createJourneyByDriverId(@PathVariable int driverId, @Valid @RequestBody @Valid JourneyRequest journeyRequest) Enables logged-in admin users to create a journey for a driver.- Parameters:
driverId
- the driver id to create a journey for.journeyRequest
- Request body asJourneyRequest
.- Returns:
- Response body as
JourneyResponse
.
-
addCurrentPassengerToJourney
@PostMapping(value="/{journeyId}/add-passenger", produces="application/json") @PreAuthorize("hasAuthority(\'ACTIVE\') or hasAuthority(\'ADMIN\')") public org.springframework.http.ResponseEntity<?> addCurrentPassengerToJourney(@PathVariable int journeyId) Enables logged-in user, as a passenger, to be a passenger of this journey.- Parameters:
journeyId
- the journey id to add this passenger.- Returns:
- an empty body.
-
addPassengerToThisJourney
@PostMapping(value="/{journeyId}/add-passenger/{passengerId}", produces="application/json") @PreAuthorize("hasAuthority(\'ADMIN\')") public org.springframework.http.ResponseEntity<?> addPassengerToThisJourney(@PathVariable int journeyId, @PathVariable int passengerId) Enables logged-in admin users to add this passenger to this journey.- Parameters:
journeyId
- the journey id to add this passenger.passengerId
- the passenger id to be added to this journey.- Returns:
- an empty body.
-
patchJourney
@PatchMapping(value="/{journeyId}", consumes="application/json-patch+json") @PreAuthorize("hasAuthority(\'ACTIVE\') or hasAuthority(\'ADMIN\')") public org.springframework.http.ResponseEntity<JourneyResponse> patchJourney(@PathVariable int journeyId, @Valid @RequestBody @Valid com.github.fge.jsonpatch.JsonPatch patch) Enables logged-in admin users or the driver who owns this journey to make correction.- Parameters:
journeyId
- the journey id to be corrected.patch
- Request body asJsonPatch
.- Returns:
- Response body as
JourneyResponse
.
-
deleteJourney
@DeleteMapping("/{journeyId}") @PreAuthorize("hasAuthority(\'ACTIVE\') or hasAuthority(\'ADMIN\')") public org.springframework.http.ResponseEntity<?> deleteJourney(@PathVariable int journeyId) Enables logged-in admin users or the driver who owns this journey to delete.- Parameters:
journeyId
- the journey id to be deleted.- Returns:
- an empty body.
-
removeCurrentPassengerFromJourney
@DeleteMapping("{journeyId}/remove-passenger") @PreAuthorize("hasAuthority(\'ACTIVE\') or hasAuthority(\'ADMIN\')") public org.springframework.http.ResponseEntity<?> removeCurrentPassengerFromJourney(@PathVariable int journeyId) Enables a user, as a passenger, to no longer be part of this journey.- Parameters:
journeyId
- the journey id to remove a passenger.- Returns:
- an empty body.
-
removePassengerFromThisJourney
@DeleteMapping("{journeyId}/remove-passenger/{passengerId}") @PreAuthorize("hasAuthority(\'ADMIN\')") public org.springframework.http.ResponseEntity<?> removePassengerFromThisJourney(@PathVariable int journeyId, @PathVariable int passengerId) Enables logged-in admin users to remove a passenger from a journey.- Parameters:
journeyId
- the journey id to remove a passenger.passengerId
- the passenger id to be removed from a journey.- Returns:
- an empty body.
-
calculateDistance
@GetMapping(value="/calculateDistance", produces="application/json") public org.springframework.http.ResponseEntity<DistanceResponse> calculateDistance(@Valid @Valid DistanceRequest distanceRequest) Enables users to search for the distance of two points. No need of authentication.- Parameters:
distanceRequest
- the search criteria asDistanceRequest
.- Returns:
- Response body as
DistanceResponse
.
-