|
| 1 | +package com.ctrlhub.core.settings.timebands |
| 2 | + |
| 3 | +import com.ctrlhub.core.Api |
| 4 | +import com.ctrlhub.core.settings.timebands.response.TimeBand |
| 5 | +import com.ctrlhub.core.router.Router |
| 6 | +import com.ctrlhub.core.router.request.AbstractRequestParameters |
| 7 | +import com.ctrlhub.core.router.request.FilterOption |
| 8 | +import io.ktor.client.HttpClient |
| 9 | + |
| 10 | +class TimeBandsRequestParameters( |
| 11 | + offset: Int? = 0, |
| 12 | + limit: Int? = 100, |
| 13 | + filterOptions: List<FilterOption> = emptyList() |
| 14 | +) : AbstractRequestParameters(offset, limit, filterOptions) |
| 15 | + |
| 16 | +class TimeBandsRouter(httpClient: HttpClient) : Router(httpClient) { |
| 17 | + /** |
| 18 | + * Retrieve a list of all time bands |
| 19 | + * |
| 20 | + * @return A list of all time bands |
| 21 | + */ |
| 22 | + suspend fun all( |
| 23 | + requestParameters: TimeBandsRequestParameters = TimeBandsRequestParameters() |
| 24 | + ): java.util.List<TimeBand> { |
| 25 | + val endpoint = "/settings/time-bands" |
| 26 | + return fetchJsonApiResource(endpoint, requestParameters.toMap()) |
| 27 | + } |
| 28 | + |
| 29 | + /** |
| 30 | + * Retrieve a single time band by ID |
| 31 | + * |
| 32 | + * @param timeBandId String The time band ID to retrieve |
| 33 | + * @return The time band with the given ID |
| 34 | + */ |
| 35 | + suspend fun one( |
| 36 | + timeBandId: String, |
| 37 | + requestParameters: TimeBandsRequestParameters = TimeBandsRequestParameters() |
| 38 | + ): TimeBand { |
| 39 | + val endpoint = "/settings/time-bands/$timeBandId" |
| 40 | + return fetchJsonApiResource(endpoint, requestParameters.toMap(), TimeBand::class.java) |
| 41 | + } |
| 42 | +} |
| 43 | + |
| 44 | +val Api.timeBands: TimeBandsRouter |
| 45 | + get() = TimeBandsRouter(httpClient) |
0 commit comments