From 732c3b3e8cfe6188d2ddc7d545954d1638f14557 Mon Sep 17 00:00:00 2001 From: Eneko Nieto Date: Sat, 16 Jan 2021 01:14:47 +0100 Subject: [PATCH] Trabajo en controllers --- .../spring/controller/TravelRestController.kt | 16 +++++++------- .../spring/controller/UserRestController.kt | 8 +++---- .../usecases/travel/AddTraveler.kt | 20 ++++++++++++------ .../usecases/travel/RemoveTraveler.kt | 21 +++++++++++++------ 4 files changed, 40 insertions(+), 25 deletions(-) diff --git a/src/main/kotlin/eu/fosil/okupamicoche/spring/controller/TravelRestController.kt b/src/main/kotlin/eu/fosil/okupamicoche/spring/controller/TravelRestController.kt index 1c4b811..691e7cd 100644 --- a/src/main/kotlin/eu/fosil/okupamicoche/spring/controller/TravelRestController.kt +++ b/src/main/kotlin/eu/fosil/okupamicoche/spring/controller/TravelRestController.kt @@ -1,7 +1,7 @@ package eu.fosil.okupamicoche.spring.controller import eu.fosil.okupamicoche.entities.TravelId -import eu.fosil.okupamicoche.entities.User +import eu.fosil.okupamicoche.entities.UserId import eu.fosil.okupamicoche.repositories.TravelRepository import eu.fosil.okupamicoche.repositories.UserRepository import eu.fosil.okupamicoche.spring.dto.TravelDto @@ -33,12 +33,12 @@ class TravelRestController( } @RequestMapping("/delete") - fun deleteTravel(id: TravelId) { + fun deleteTravel(@RequestBody @Validated id: TravelId) { DeleteTravel(travelRepository).deleteTravel(id) } @RequestMapping("/edit") - fun editTravel(travelDto: TravelDto) { + fun editTravel(@RequestBody @Validated travelDto: TravelDto) { EditTravel(travelRepository).editTravel(travelDto.toTravel(userRepository)) } @@ -54,18 +54,18 @@ class TravelRestController( } @RequestMapping("/addtraveler") - fun addTraveler(travelDto: TravelDto, user: User) { - AddTraveler(travelRepository).addTraveler(travelDto.toTravel(userRepository), user) + fun addTraveler(@RequestBody @Validated travelId: TravelId, @RequestBody @Validated userId: UserId) { + AddTraveler(userRepository, travelRepository).addTraveler(travelId, userId) } @RequestMapping("/removetraveler") - fun removeTraveler(travelDto: TravelDto, user: User) { - RemoveTraveler(travelRepository).removeTraveler(travelDto.toTravel(userRepository), user) + fun removeTraveler(@RequestBody @Validated travelId: TravelId, @RequestBody @Validated userId: UserId) { + RemoveTraveler(userRepository, travelRepository).removeTraveler(travelId, userId) } /** - * Devuelve el docnumber del usuario actual. + * Devuelve el id del usuario actual. */ private fun getCurrentUserId(): String? { val authentication = SecurityContextHolder.getContext().authentication diff --git a/src/main/kotlin/eu/fosil/okupamicoche/spring/controller/UserRestController.kt b/src/main/kotlin/eu/fosil/okupamicoche/spring/controller/UserRestController.kt index a2cc00a..3820cd7 100644 --- a/src/main/kotlin/eu/fosil/okupamicoche/spring/controller/UserRestController.kt +++ b/src/main/kotlin/eu/fosil/okupamicoche/spring/controller/UserRestController.kt @@ -3,10 +3,8 @@ package eu.fosil.okupamicoche.spring.controller import eu.fosil.okupamicoche.entities.UserId import eu.fosil.okupamicoche.repositories.UserRepository import eu.fosil.okupamicoche.spring.dto.CreateUserDto -import eu.fosil.okupamicoche.spring.dto.TravelDto import eu.fosil.okupamicoche.spring.dto.UserDto import eu.fosil.okupamicoche.usecases.user.* -import org.springframework.data.repository.findByIdOrNull import org.springframework.validation.annotation.Validated import org.springframework.web.bind.annotation.RequestBody import org.springframework.web.bind.annotation.RequestMapping @@ -17,7 +15,7 @@ import org.springframework.web.bind.annotation.RestController class UserRestController(private val userRepository: UserRepository) { @RequestMapping("/create") - fun createUser(@RequestBody createUserDto: CreateUserDto) { + fun createUser(@RequestBody @Validated createUserDto: CreateUserDto) { CreateUser(userRepository).createUser(createUserDto.toUser(userRepository)) } @@ -27,12 +25,12 @@ class UserRestController(private val userRepository: UserRepository) { } @RequestMapping("/delete") - fun deleteUser(userId: UserId) { + fun deleteUser(@RequestBody @Validated userId: UserId) { DeleteUser(userRepository).deleteUser(userId) } @RequestMapping("/edit") - fun editUser(userDto: UserDto) { + fun editUser(@RequestBody @Validated userDto: UserDto) { EditUser(userRepository).editUser(userDto.toUser(userRepository)) } diff --git a/src/main/kotlin/eu/fosil/okupamicoche/usecases/travel/AddTraveler.kt b/src/main/kotlin/eu/fosil/okupamicoche/usecases/travel/AddTraveler.kt index 8696bba..54add30 100644 --- a/src/main/kotlin/eu/fosil/okupamicoche/usecases/travel/AddTraveler.kt +++ b/src/main/kotlin/eu/fosil/okupamicoche/usecases/travel/AddTraveler.kt @@ -1,13 +1,21 @@ package eu.fosil.okupamicoche.usecases.travel -import eu.fosil.okupamicoche.entities.Travel -import eu.fosil.okupamicoche.entities.User +import eu.fosil.okupamicoche.entities.TravelId +import eu.fosil.okupamicoche.entities.UserId import eu.fosil.okupamicoche.repositories.TravelRepository +import eu.fosil.okupamicoche.repositories.UserRepository +import org.springframework.data.repository.findByIdOrNull -class AddTraveler(private val travelRepository: TravelRepository) { - fun addTraveler(travel: Travel, user: User) { - if (!travel.travelers.contains(user)) +class AddTraveler( + private val userRepository: UserRepository, + private val travelRepository: TravelRepository +) { + fun addTraveler(travelId: TravelId, userId: UserId) { + val user = userRepository.findByIdOrNull(userId) + val travel = travelRepository.findByIdOrNull(travelId) + if ((travel?.travelers?.contains(user) == false) && (user != null)) { travel.travelers.add(user) - travelRepository.save(travel) + travelRepository.save(travel) + } } } \ No newline at end of file diff --git a/src/main/kotlin/eu/fosil/okupamicoche/usecases/travel/RemoveTraveler.kt b/src/main/kotlin/eu/fosil/okupamicoche/usecases/travel/RemoveTraveler.kt index 2d8a0e2..a161fe8 100644 --- a/src/main/kotlin/eu/fosil/okupamicoche/usecases/travel/RemoveTraveler.kt +++ b/src/main/kotlin/eu/fosil/okupamicoche/usecases/travel/RemoveTraveler.kt @@ -1,12 +1,21 @@ package eu.fosil.okupamicoche.usecases.travel -import eu.fosil.okupamicoche.entities.Travel -import eu.fosil.okupamicoche.entities.User +import eu.fosil.okupamicoche.entities.TravelId +import eu.fosil.okupamicoche.entities.UserId import eu.fosil.okupamicoche.repositories.TravelRepository +import eu.fosil.okupamicoche.repositories.UserRepository +import org.springframework.data.repository.findByIdOrNull -class RemoveTraveler(private val travelRepository: TravelRepository) { - fun removeTraveler(travel: Travel, user: User) { - travel.travelers.remove(user) - travelRepository.save(travel) +class RemoveTraveler( + private val userRepository: UserRepository, + private val travelRepository: TravelRepository +) { + fun removeTraveler(travelId: TravelId, userId: UserId) { + val user = userRepository.findByIdOrNull(userId) + val travel = travelRepository.findByIdOrNull(travelId) + if ((user != null) && (travel != null)) { + travel.travelers.remove(user) + travelRepository.save(travel) + } } } \ No newline at end of file