diff --git a/src/main/kotlin/eu/fosil/okupamicoche/dto/TravelDto.kt b/src/main/kotlin/eu/fosil/okupamicoche/dto/TravelDto.kt index a54c7c7..8882c7a 100644 --- a/src/main/kotlin/eu/fosil/okupamicoche/dto/TravelDto.kt +++ b/src/main/kotlin/eu/fosil/okupamicoche/dto/TravelDto.kt @@ -6,13 +6,14 @@ import eu.fosil.okupamicoche.entities.UserIdNotFoundException import eu.fosil.okupamicoche.entities.UserNotSpecifiedException import eu.fosil.okupamicoche.repositories.UserRepository import org.springframework.data.repository.findByIdOrNull +import java.time.LocalDateTime class TravelDto( // Los campos deben ser públicos para que aparezcan en el JSON val id: TravelId? = null, var driverInfo: UserInfoDto? = null, val travelersInfo: List = emptyList(), - val departureDate: String = "", + val departureDate: LocalDateTime = LocalDateTime.MIN, val origin: String = "", val destination: String = "", val places: Int = 0, diff --git a/src/main/kotlin/eu/fosil/okupamicoche/entities/ApiResponse.kt b/src/main/kotlin/eu/fosil/okupamicoche/entities/ApiResponse.kt index 397848e..3edc3c8 100644 --- a/src/main/kotlin/eu/fosil/okupamicoche/entities/ApiResponse.kt +++ b/src/main/kotlin/eu/fosil/okupamicoche/entities/ApiResponse.kt @@ -4,7 +4,7 @@ import com.fasterxml.jackson.annotation.JsonInclude @JsonInclude(JsonInclude.Include.NON_NULL) open class ApiResponse(val success: Boolean, val data: T?, val error: ApiError?) { - constructor(success: Boolean, data: T) : this(success, data, null) + constructor(success: Boolean, data: T?) : this(success, data, null) constructor(success: Boolean, error: ApiError) : this(success, null, error) } diff --git a/src/main/kotlin/eu/fosil/okupamicoche/entities/Travel.kt b/src/main/kotlin/eu/fosil/okupamicoche/entities/Travel.kt index df52a3f..73e1c5a 100644 --- a/src/main/kotlin/eu/fosil/okupamicoche/entities/Travel.kt +++ b/src/main/kotlin/eu/fosil/okupamicoche/entities/Travel.kt @@ -2,6 +2,7 @@ package eu.fosil.okupamicoche.entities import org.hibernate.annotations.LazyCollection import org.hibernate.annotations.LazyCollectionOption +import java.time.LocalDateTime import javax.persistence.* typealias TravelId = Long @@ -15,7 +16,7 @@ class Travel( @ManyToMany @LazyCollection(LazyCollectionOption.FALSE) var travelers: MutableList, - var departureDate: String, + var departureDate: LocalDateTime, var origin: String, var destination: String, var places: Int, diff --git a/src/main/kotlin/eu/fosil/okupamicoche/spring/services/MatrixService.kt b/src/main/kotlin/eu/fosil/okupamicoche/spring/services/MatrixService.kt index b9775d6..2cf3304 100644 --- a/src/main/kotlin/eu/fosil/okupamicoche/spring/services/MatrixService.kt +++ b/src/main/kotlin/eu/fosil/okupamicoche/spring/services/MatrixService.kt @@ -15,7 +15,7 @@ class MatrixService(private val matrixClient: MatrixClient) : MatrixApi { private val logger = KotlinLogging.logger {} override suspend fun createRoom(name: String, alias: String, usersToInvite: Set, topic: String?): String { - logger.debug { "Creating room name=$name alias=$alias full=${MatrixId.RoomAliasId("#$alias:synapse")}" } + logger.debug { "Creating room name=$name alias=$alias" } val usersToInviteId = usersToInvite.stream().map { user -> MatrixId.UserId(user.matrixId) } val roomId = matrixClient.roomsApi.createRoom( name = name, diff --git a/src/main/kotlin/eu/fosil/okupamicoche/usecases/matrix/CreateRoomForTravel.kt b/src/main/kotlin/eu/fosil/okupamicoche/usecases/matrix/CreateRoomForTravel.kt index 878024f..1f982ee 100644 --- a/src/main/kotlin/eu/fosil/okupamicoche/usecases/matrix/CreateRoomForTravel.kt +++ b/src/main/kotlin/eu/fosil/okupamicoche/usecases/matrix/CreateRoomForTravel.kt @@ -1,6 +1,7 @@ package eu.fosil.okupamicoche.usecases.matrix import eu.fosil.okupamicoche.entities.Travel +import java.time.format.DateTimeFormatter const val ROOM_NAME_PREFIX = "Viaje" const val ROOM_ALIAS_PREFIX = "viaje" @@ -13,11 +14,15 @@ class CreateRoomForTravel(private val matrixApi: MatrixApi) { } private fun createRoomName(travel: Travel): String { - return "$ROOM_NAME_PREFIX ${travel.origin} - ${travel.destination}" + val formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm") + val formattedDate = travel.departureDate.format(formatter) + return "$ROOM_NAME_PREFIX ${travel.origin} - ${travel.destination} $formattedDate" } private fun createRoomAlias(travel: Travel): String { - val alias = "${ROOM_ALIAS_PREFIX}_${travel.origin}-${travel.destination}" + val formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd_hh'H'mm") + val formattedDate = travel.departureDate.format(formatter) + val alias = "${ROOM_ALIAS_PREFIX}_${travel.origin}-${travel.destination}_${formattedDate}" return alias.decapitalize().replace(' ', '_') } } \ No newline at end of file