Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,9 @@ enum class EquipmentIncludes(val value: String) : JsonApiIncludes {
class EquipmentRequestParameters(
offset: Int = 0,
limit: Int = 100,
filterOptions: List<FilterOption> = emptyList(),
filters: List<FilterOption> = emptyList(),
includes: List<EquipmentIncludes> = emptyList()
) : RequestParametersWithIncludes<EquipmentIncludes>(offset, limit, filterOptions, includes)
) : RequestParametersWithIncludes<EquipmentIncludes>(offset, limit, filters, includes)

enum class EquipmentSort(val value: String) {
Name("name");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,9 @@ enum class EquipmentExposureIncludes(val value: String) : JsonApiIncludes {
class EquipmentExposureRequestParameters(
offset: Int = 0,
limit: Int = 100,
filterOptions: List<FilterOption> = emptyList(),
filters: List<FilterOption> = emptyList(),
includes: List<EquipmentExposureIncludes> = emptyList()
) : RequestParametersWithIncludes<EquipmentExposureIncludes>(offset, limit, filterOptions, includes)
) : RequestParametersWithIncludes<EquipmentExposureIncludes>(offset, limit, filters, includes)

/**
* An equipment exposure router that deals with the exposures realm of the Ctrl Hub API
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,9 @@ enum class VehicleIncludes(val value: String) : JsonApiIncludes {
class VehicleRequestParameters(
offset: Int = 0,
limit: Int = 100,
filterOptions: List<FilterOption> = emptyList(),
filters: List<FilterOption> = emptyList(),
includes: List<VehicleIncludes> = emptyList()
) : RequestParametersWithIncludes<VehicleIncludes>(offset, limit, filterOptions, includes)
) : RequestParametersWithIncludes<VehicleIncludes>(offset, limit, filters, includes)

/**
* A vehicles router that deals with the vehicles realm of the Ctrl Hub API
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,9 @@ enum class OperationIncludes(val value: String) : JsonApiIncludes {
class OperationRequestParameters(
offset: Int = 0,
limit: Int = 100,
filterOptions: List<FilterOption> = emptyList(),
filters: List<FilterOption> = emptyList(),
includes: List<OperationIncludes> = emptyList()
) : RequestParametersWithIncludes<OperationIncludes>(offset, limit, filterOptions, includes)
) : RequestParametersWithIncludes<OperationIncludes>(offset, limit, filters, includes)

class OperationsRouter(httpClient: HttpClient) : Router(httpClient) {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,9 @@ enum class SchemeIncludes(val value: String): JsonApiIncludes {
class SchemeRequestParameters(
offset: Int = 0,
limit: Int = 100,
filterOptions: List<FilterOption> = emptyList(),
filters: List<FilterOption> = emptyList(),
includes: List<SchemeIncludes> = emptyList()
) : RequestParametersWithIncludes<SchemeIncludes>(offset, limit, filterOptions, includes)
) : RequestParametersWithIncludes<SchemeIncludes>(offset, limit, filters, includes)

class SchemesRouter(httpClient: HttpClient) : Router(httpClient) {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,8 @@ sealed interface FilterOption {
fun format(): String
}

class FieldFilterExpression(val field: String, val values: List<String>) : FilterOption {
override fun format(): String {
val quoted = values.joinToString(",") { "'${it}'" }
return "${field}($quoted)"
}
class FieldFilterExpression(val field: String, val value: String) : FilterOption {
override fun format(): String = "${field}('$value')"
}

class ValueFilterExpression(val value: String) : FilterOption {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,8 @@ abstract class AbstractRequestParameters(
class RequestParameters(
offset: Int? = null,
limit: Int? = null,
filterOptions: List<FilterOption> = emptyList()
) : AbstractRequestParameters(offset, limit, filterOptions)
filters: List<FilterOption> = emptyList()
) : AbstractRequestParameters(offset, limit, filters)

open class RequestParametersWithIncludes<TIncludes>(
offset: Int? = null,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ import io.ktor.client.HttpClient
class TimeBandsRequestParameters(
offset: Int? = 0,
limit: Int? = 100,
filterOptions: List<FilterOption> = emptyList()
) : AbstractRequestParameters(offset, limit, filterOptions)
filters: List<FilterOption> = emptyList()
) : AbstractRequestParameters(offset, limit, filters)

class TimeBandsRouter(httpClient: HttpClient) : Router(httpClient) {
/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,12 @@ class RequestParametersFiltersTest {
fun `and of two field expressions formats correctly`() {
val expr = AndExpression(
listOf(
FieldFilterExpression("status", listOf("open")),
FieldFilterExpression("category", listOf("news"))
FieldFilterExpression("status", "open"),
FieldFilterExpression("category", "news")
)
)

val params = RequestParameters(filterOptions = listOf(expr))
val params = RequestParameters(filters = listOf(expr))
val map = params.toMap()

assertEquals("and(status('open'),category('news'))", map["filter"])
Expand All @@ -29,7 +29,7 @@ class RequestParametersFiltersTest {
)
)

val params = RequestParameters(filterOptions = listOf(expr))
val params = RequestParameters(filters = listOf(expr))
val map = params.toMap()

assertEquals("and(is_latest(),no_start())", map["filter"])
Expand All @@ -39,12 +39,12 @@ class RequestParametersFiltersTest {
fun `mixed and expression with field and function`() {
val expr = AndExpression(
listOf(
FieldFilterExpression("status", listOf("active")),
FieldFilterExpression("status", "active"),
ValueFilterExpression("is_latest()")
)
)

val params = RequestParameters(filterOptions = listOf(expr))
val params = RequestParameters(filters = listOf(expr))
val map = params.toMap()

assertEquals("and(status('active'),is_latest())", map["filter"])
Expand Down
Loading