From 95227a447603c2a67c5c27e70d62e04bb3e9dab0 Mon Sep 17 00:00:00 2001 From: Eneko Nieto Date: Mon, 4 Jan 2021 17:05:23 +0100 Subject: [PATCH] =?UTF-8?q?A=C3=B1adidos=20casos=20de=20uso=20viajes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kotlin/eu/fosil/okupamicoche/entities/Travel.kt | 2 +- .../okupamicoche/usecases/travel/AddTraveler.kt | 13 +++++++++++++ .../okupamicoche/usecases/travel/RemoveTraveler.kt | 12 ++++++++++++ 3 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 src/main/kotlin/eu/fosil/okupamicoche/usecases/travel/AddTraveler.kt create mode 100644 src/main/kotlin/eu/fosil/okupamicoche/usecases/travel/RemoveTraveler.kt diff --git a/src/main/kotlin/eu/fosil/okupamicoche/entities/Travel.kt b/src/main/kotlin/eu/fosil/okupamicoche/entities/Travel.kt index ef998fc..f72e73c 100644 --- a/src/main/kotlin/eu/fosil/okupamicoche/entities/Travel.kt +++ b/src/main/kotlin/eu/fosil/okupamicoche/entities/Travel.kt @@ -8,7 +8,7 @@ class Travel( @OneToOne var driver: User, @OneToMany - var travelers: List, + var travelers: MutableList, var departureDate: String, var origin: String, var destination: String, diff --git a/src/main/kotlin/eu/fosil/okupamicoche/usecases/travel/AddTraveler.kt b/src/main/kotlin/eu/fosil/okupamicoche/usecases/travel/AddTraveler.kt new file mode 100644 index 0000000..953092d --- /dev/null +++ b/src/main/kotlin/eu/fosil/okupamicoche/usecases/travel/AddTraveler.kt @@ -0,0 +1,13 @@ +package eu.fosil.okupamicoche.usecases.travel + +import eu.fosil.okupamicoche.entities.Travel +import eu.fosil.okupamicoche.entities.User +import eu.fosil.okupamicoche.repositories.TravelRepository + +class AddTraveler(private val travelRepository: TravelRepository) { + fun addTraveler(travel: Travel, user: User) { + if (travel.travelers.none { u -> u.id == user.id }) + travel.travelers.add(user) + 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 new file mode 100644 index 0000000..2d8a0e2 --- /dev/null +++ b/src/main/kotlin/eu/fosil/okupamicoche/usecases/travel/RemoveTraveler.kt @@ -0,0 +1,12 @@ +package eu.fosil.okupamicoche.usecases.travel + +import eu.fosil.okupamicoche.entities.Travel +import eu.fosil.okupamicoche.entities.User +import eu.fosil.okupamicoche.repositories.TravelRepository + +class RemoveTraveler(private val travelRepository: TravelRepository) { + fun removeTraveler(travel: Travel, user: User) { + travel.travelers.remove(user) + travelRepository.save(travel) + } +} \ No newline at end of file