Skip to content

Commit 705d694

Browse files
committed
Support xsources includes
1 parent 9a2d27c commit 705d694

File tree

1 file changed

+20
-2
lines changed

1 file changed

+20
-2
lines changed

src/main/kotlin/com/ctrlhub/core/datacapture/FormSchemasRouter.kt

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,20 +7,38 @@ import com.ctrlhub.core.datacapture.response.FormSchemaLatestMeta
77
import com.ctrlhub.core.datacapture.response.FormSchemaMeta
88
import com.ctrlhub.core.extractPaginationFromMeta
99
import com.ctrlhub.core.router.Router
10+
import com.ctrlhub.core.router.request.FilterOption
11+
import com.ctrlhub.core.router.request.JsonApiIncludes
1012
import com.ctrlhub.core.router.request.RequestParameters
13+
import com.ctrlhub.core.router.request.RequestParametersWithIncludes
1114
import io.ktor.client.HttpClient
1215
import io.ktor.client.call.body
1316
import kotlinx.serialization.json.*
1417
import java.time.LocalDateTime
1518
import java.time.ZonedDateTime
1619
import java.time.format.DateTimeFormatter
1720

21+
enum class FormSchemaIncludes(val value: String) : JsonApiIncludes {
22+
Xsources("x-sources");
23+
24+
override fun value(): String {
25+
return value
26+
}
27+
}
28+
29+
class FormSchemaRequestParameters(
30+
offset: Int = 0,
31+
limit: Int = 100,
32+
filterOptions: List<FilterOption> = emptyList(),
33+
includes: List<FormSchemaIncludes> = emptyList()
34+
) : RequestParametersWithIncludes<FormSchemaIncludes>()
35+
1836
class FormSchemasRouter(httpClient: HttpClient) : Router(httpClient) {
1937

2038
suspend fun all(
2139
organisationId: String,
2240
formId: String,
23-
requestParameters: RequestParameters = RequestParameters()
41+
requestParameters: FormSchemaRequestParameters = FormSchemaRequestParameters()
2442
): PaginatedList<FormSchema> {
2543
val endpoint = "/v3/orgs/$organisationId/data-capture/forms/$formId/schemas"
2644

@@ -42,7 +60,7 @@ class FormSchemasRouter(httpClient: HttpClient) : Router(httpClient) {
4260
organisationId: String,
4361
formId: String,
4462
schemaId: String,
45-
requestParameters: RequestParameters = RequestParameters()
63+
requestParameters: FormSchemaRequestParameters = FormSchemaRequestParameters()
4664
): FormSchema {
4765
val endpoint = "/v3/orgs/$organisationId/data-capture/forms/$formId/schemas/$schemaId"
4866

0 commit comments

Comments
 (0)