diff --git a/src/main/kotlin/de/pheerai/rcdbquery/Sample.kt b/src/main/kotlin/de/pheerai/rcdbquery/Sample.kt index e8040a5..e3fb680 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/Sample.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/Sample.kt @@ -4,10 +4,11 @@ import de.pheerai.rcdbquery.dataMappings.* import de.pheerai.rcdbquery.dsl.* fun main() { - print(generateQueryUrl()) + println(generateNameQueryUrl()) + println(generatePageQueryUrl()) } -fun generateQueryUrl() = rcdbQuery { +fun generateNameQueryUrl() = rcdbQuery { searchType(SearchType.COASTER) searchTerm("Dragon") vendors { @@ -21,3 +22,11 @@ fun generateQueryUrl() = rcdbQuery { inversion() } } + +fun generatePageQueryUrl() = rcdbQuery { + page(3) + searchType(SearchType.COASTER) + vendors { + intamin() + } +} diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/Page.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/Page.kt new file mode 100644 index 0000000..13236e7 --- /dev/null +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/Page.kt @@ -0,0 +1,27 @@ +package de.pheerai.rcdbquery.dataMappings + +import de.pheerai.rcdbquery.dsl.RcdbQueryParamsBuilder + +class Page(override val paramValue: Int) : RcdbParamOption { + override val fullName: String + get() = "The page to show" + override val prettyName: String + get() = "Page" + + companion object { + const val staticParamName = "page" + } +} + +fun RcdbQueryParamsBuilder.page(page: Int) { + if (Page.staticParamName !in this.keys()) { + this[Page.staticParamName] = listOf(Page(page)) + } else { + error( + """Only one page must be given! + | Old page: ${this[Page.staticParamName]!![0].paramValue} + | New page: $page + """.trimMargin() + ) + } +}