Skip to content

Commit 4e9005c

Browse files
authored
Merge pull request #14 from ctrl-hub/fix/filter-request-parameters
fix: filter request parameters
2 parents 8530822 + c50d6c6 commit 4e9005c

File tree

9 files changed

+22
-25
lines changed

9 files changed

+22
-25
lines changed

src/main/kotlin/com/ctrlhub/core/assets/equipment/EquipmentRouter.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,9 @@ enum class EquipmentIncludes(val value: String) : JsonApiIncludes {
2828
class EquipmentRequestParameters(
2929
offset: Int = 0,
3030
limit: Int = 100,
31-
filterOptions: List<FilterOption> = emptyList(),
31+
filters: List<FilterOption> = emptyList(),
3232
includes: List<EquipmentIncludes> = emptyList()
33-
) : RequestParametersWithIncludes<EquipmentIncludes>(offset, limit, filterOptions, includes)
33+
) : RequestParametersWithIncludes<EquipmentIncludes>(offset, limit, filters, includes)
3434

3535
enum class EquipmentSort(val value: String) {
3636
Name("name");

src/main/kotlin/com/ctrlhub/core/assets/equipment/exposures/EquipmentExposuresRouter.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,9 @@ enum class EquipmentExposureIncludes(val value: String) : JsonApiIncludes {
2525
class EquipmentExposureRequestParameters(
2626
offset: Int = 0,
2727
limit: Int = 100,
28-
filterOptions: List<FilterOption> = emptyList(),
28+
filters: List<FilterOption> = emptyList(),
2929
includes: List<EquipmentExposureIncludes> = emptyList()
30-
) : RequestParametersWithIncludes<EquipmentExposureIncludes>(offset, limit, filterOptions, includes)
30+
) : RequestParametersWithIncludes<EquipmentExposureIncludes>(offset, limit, filters, includes)
3131

3232
/**
3333
* An equipment exposure router that deals with the exposures realm of the Ctrl Hub API

src/main/kotlin/com/ctrlhub/core/assets/vehicles/VehiclesRouter.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,9 @@ enum class VehicleIncludes(val value: String) : JsonApiIncludes {
3232
class VehicleRequestParameters(
3333
offset: Int = 0,
3434
limit: Int = 100,
35-
filterOptions: List<FilterOption> = emptyList(),
35+
filters: List<FilterOption> = emptyList(),
3636
includes: List<VehicleIncludes> = emptyList()
37-
) : RequestParametersWithIncludes<VehicleIncludes>(offset, limit, filterOptions, includes)
37+
) : RequestParametersWithIncludes<VehicleIncludes>(offset, limit, filters, includes)
3838

3939
/**
4040
* A vehicles router that deals with the vehicles realm of the Ctrl Hub API

src/main/kotlin/com/ctrlhub/core/projects/operations/OperationsRouter.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,9 @@ enum class OperationIncludes(val value: String) : JsonApiIncludes {
2727
class OperationRequestParameters(
2828
offset: Int = 0,
2929
limit: Int = 100,
30-
filterOptions: List<FilterOption> = emptyList(),
30+
filters: List<FilterOption> = emptyList(),
3131
includes: List<OperationIncludes> = emptyList()
32-
) : RequestParametersWithIncludes<OperationIncludes>(offset, limit, filterOptions, includes)
32+
) : RequestParametersWithIncludes<OperationIncludes>(offset, limit, filters, includes)
3333

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

src/main/kotlin/com/ctrlhub/core/projects/schemes/SchemesRouter.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,9 @@ enum class SchemeIncludes(val value: String): JsonApiIncludes {
2323
class SchemeRequestParameters(
2424
offset: Int = 0,
2525
limit: Int = 100,
26-
filterOptions: List<FilterOption> = emptyList(),
26+
filters: List<FilterOption> = emptyList(),
2727
includes: List<SchemeIncludes> = emptyList()
28-
) : RequestParametersWithIncludes<SchemeIncludes>(offset, limit, filterOptions, includes)
28+
) : RequestParametersWithIncludes<SchemeIncludes>(offset, limit, filters, includes)
2929

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

src/main/kotlin/com/ctrlhub/core/router/request/FilterExpression.kt

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,8 @@ sealed interface FilterOption {
44
fun format(): String
55
}
66

7-
class FieldFilterExpression(val field: String, val values: List<String>) : FilterOption {
8-
override fun format(): String {
9-
val quoted = values.joinToString(",") { "'${it}'" }
10-
return "${field}($quoted)"
11-
}
7+
class FieldFilterExpression(val field: String, val value: String) : FilterOption {
8+
override fun format(): String = "${field}('$value')"
129
}
1310

1411
class ValueFilterExpression(val value: String) : FilterOption {

src/main/kotlin/com/ctrlhub/core/router/request/RequestParameters.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@ abstract class AbstractRequestParameters(
2727
class RequestParameters(
2828
offset: Int? = null,
2929
limit: Int? = null,
30-
filterOptions: List<FilterOption> = emptyList()
31-
) : AbstractRequestParameters(offset, limit, filterOptions)
30+
filters: List<FilterOption> = emptyList()
31+
) : AbstractRequestParameters(offset, limit, filters)
3232

3333
open class RequestParametersWithIncludes<TIncludes>(
3434
offset: Int? = null,

src/main/kotlin/com/ctrlhub/core/settings/timebands/TimeBandsRouter.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ import io.ktor.client.HttpClient
1010
class TimeBandsRequestParameters(
1111
offset: Int? = 0,
1212
limit: Int? = 100,
13-
filterOptions: List<FilterOption> = emptyList()
14-
) : AbstractRequestParameters(offset, limit, filterOptions)
13+
filters: List<FilterOption> = emptyList()
14+
) : AbstractRequestParameters(offset, limit, filters)
1515

1616
class TimeBandsRouter(httpClient: HttpClient) : Router(httpClient) {
1717
/**

src/test/kotlin/com/ctrlhub/core/router/request/RequestParametersFiltersTest.kt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,12 @@ class RequestParametersFiltersTest {
99
fun `and of two field expressions formats correctly`() {
1010
val expr = AndExpression(
1111
listOf(
12-
FieldFilterExpression("status", listOf("open")),
13-
FieldFilterExpression("category", listOf("news"))
12+
FieldFilterExpression("status", "open"),
13+
FieldFilterExpression("category", "news")
1414
)
1515
)
1616

17-
val params = RequestParameters(filterOptions = listOf(expr))
17+
val params = RequestParameters(filters = listOf(expr))
1818
val map = params.toMap()
1919

2020
assertEquals("and(status('open'),category('news'))", map["filter"])
@@ -29,7 +29,7 @@ class RequestParametersFiltersTest {
2929
)
3030
)
3131

32-
val params = RequestParameters(filterOptions = listOf(expr))
32+
val params = RequestParameters(filters = listOf(expr))
3333
val map = params.toMap()
3434

3535
assertEquals("and(is_latest(),no_start())", map["filter"])
@@ -39,12 +39,12 @@ class RequestParametersFiltersTest {
3939
fun `mixed and expression with field and function`() {
4040
val expr = AndExpression(
4141
listOf(
42-
FieldFilterExpression("status", listOf("active")),
42+
FieldFilterExpression("status", "active"),
4343
ValueFilterExpression("is_latest()")
4444
)
4545
)
4646

47-
val params = RequestParameters(filterOptions = listOf(expr))
47+
val params = RequestParameters(filters = listOf(expr))
4848
val map = params.toMap()
4949

5050
assertEquals("and(status('active'),is_latest())", map["filter"])

0 commit comments

Comments
 (0)