Inicio de filtros
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
package eu.fosil.okupamicoche.spring.dto
|
||||
package eu.fosil.okupamicoche.dto
|
||||
|
||||
import eu.fosil.okupamicoche.entities.User
|
||||
import eu.fosil.okupamicoche.repositories.UserRepository
|
||||
@@ -1,4 +1,4 @@
|
||||
package eu.fosil.okupamicoche.spring.dto
|
||||
package eu.fosil.okupamicoche.dto
|
||||
|
||||
import eu.fosil.okupamicoche.entities.Travel
|
||||
import eu.fosil.okupamicoche.entities.TravelId
|
||||
@@ -0,0 +1,3 @@
|
||||
package eu.fosil.okupamicoche.dto
|
||||
|
||||
class TravelListDto(val totalTravels: Long, val travels: List<TravelDto>)
|
||||
@@ -1,4 +1,4 @@
|
||||
package eu.fosil.okupamicoche.spring.dto
|
||||
package eu.fosil.okupamicoche.dto
|
||||
|
||||
import eu.fosil.okupamicoche.entities.User
|
||||
import eu.fosil.okupamicoche.entities.UserId
|
||||
@@ -10,6 +10,14 @@ import org.springframework.data.repository.query.Param
|
||||
interface TravelRepository : CrudRepository<Travel, TravelId> {
|
||||
@Query("SELECT t FROM Travel t WHERE t.driver.id = :userId")
|
||||
fun findUserTravelsAsDriver(@Param("userId") userId: UserId): List<Travel>
|
||||
|
||||
@Query("SELECT t FROM Travel t JOIN t.travelers u WHERE u.id = :userId")
|
||||
fun findUserTravelsAsTraveler(@Param("userId") userId: UserId): List<Travel>
|
||||
|
||||
@Query("SELECT t FROM Travel t WHERE t.origin LIKE :filter")
|
||||
// @Query("SELECT t FROM Travel t WHERE t.origin LIKE :filter LIMIT :pageSize")
|
||||
fun findFilteredTravels(
|
||||
@Param("filter") filter: String,
|
||||
// @Param("pageSize") pageSize: Int
|
||||
): List<Travel>
|
||||
}
|
||||
@@ -9,12 +9,13 @@ class JWTSecurityConfig : WebSecurityConfigurerAdapter() {
|
||||
@Throws(Exception::class)
|
||||
override fun configure(http: HttpSecurity) {//@formatter:off
|
||||
http.cors()
|
||||
// .and()
|
||||
// .authorizeRequests()
|
||||
// .anyRequest()
|
||||
// .hasAuthority("SCOPE_profile")
|
||||
.and()
|
||||
.oauth2ResourceServer()
|
||||
.jwt()
|
||||
.authorizeRequests()
|
||||
.anyRequest()
|
||||
.permitAll()
|
||||
// .hasAuthority("SCOPE_profile")
|
||||
// .and()
|
||||
// .oauth2ResourceServer()
|
||||
// .jwt()
|
||||
}//@formatter:on
|
||||
}
|
||||
@@ -5,7 +5,8 @@ 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 eu.fosil.okupamicoche.spring.dto.TravelDto
|
||||
import eu.fosil.okupamicoche.dto.TravelDto
|
||||
import eu.fosil.okupamicoche.dto.TravelListDto
|
||||
import eu.fosil.okupamicoche.usecases.travel.*
|
||||
import org.springframework.data.repository.findByIdOrNull
|
||||
import org.springframework.validation.annotation.Validated
|
||||
@@ -56,17 +57,26 @@ class TravelRestController(
|
||||
}
|
||||
|
||||
@RequestMapping("/list")
|
||||
fun listTravels(): ApiResponse<List<TravelDto>> {
|
||||
fun listTravels(
|
||||
@RequestParam @Validated filter: String?
|
||||
): ApiResponse<TravelListDto> {
|
||||
return response {
|
||||
ListTravels(travelRepository).listTravels().map { t -> TravelDto(t) }
|
||||
val travels = if ((filter == null) || (filter.isEmpty()))
|
||||
ListTravels(travelRepository).listTravels().map { t -> TravelDto(t) }
|
||||
else
|
||||
ListTravels(travelRepository).listTravels(
|
||||
filter, SORT_ASCENDING, 0, 20
|
||||
).map { t -> TravelDto(t) }
|
||||
TravelListDto(travelRepository.count(), travels)
|
||||
}
|
||||
}
|
||||
|
||||
@RequestMapping("/listusertravels")
|
||||
fun listUserTravels(): ApiResponse<List<TravelDto>> {
|
||||
fun listUserTravels(): ApiResponse<TravelListDto> {
|
||||
return response {
|
||||
val userId = getCurrentUserId()
|
||||
ListUserTravels(travelRepository).listUserTravels(userId).map { t -> TravelDto(t) }
|
||||
val travels = ListUserTravels(travelRepository).listUserTravels(userId).map { t -> TravelDto(t) }
|
||||
TravelListDto(travelRepository.count(), travels)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -3,8 +3,8 @@ package eu.fosil.okupamicoche.spring.controller
|
||||
import eu.fosil.okupamicoche.entities.ApiResponse
|
||||
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.UserDto
|
||||
import eu.fosil.okupamicoche.dto.CreateUserDto
|
||||
import eu.fosil.okupamicoche.dto.UserDto
|
||||
import eu.fosil.okupamicoche.usecases.user.*
|
||||
import org.springframework.validation.annotation.Validated
|
||||
import org.springframework.web.bind.annotation.CrossOrigin
|
||||
|
||||
@@ -3,8 +3,14 @@ package eu.fosil.okupamicoche.usecases.travel
|
||||
import eu.fosil.okupamicoche.entities.Travel
|
||||
import eu.fosil.okupamicoche.repositories.TravelRepository
|
||||
|
||||
const val SORT_ASCENDING = true
|
||||
const val SORT_DESCENDING = false
|
||||
|
||||
class ListTravels(private val travelRepository: TravelRepository) {
|
||||
fun listTravels():List<Travel> {
|
||||
return travelRepository.findAll().toList()
|
||||
}
|
||||
fun listTravels(filter: String = "", sortDirection: Boolean, pageIndex: Int, pageSize: Int):List<Travel> {
|
||||
return travelRepository.findFilteredTravels(filter).toList()
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user