Trabajo en controllers

This commit is contained in:
Eneko Nieto
2021-01-16 01:14:47 +01:00
parent 96086f7bde
commit 732c3b3e8c
4 changed files with 40 additions and 25 deletions

View File

@@ -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

View File

@@ -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))
}

View File

@@ -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)
}
}
}

View File

@@ -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)
}
}
}