Skip to content

Commit

Permalink
feat: Marine metric/imperial length units
Browse files Browse the repository at this point in the history
  • Loading branch information
DadiBit committed Jun 9, 2023
1 parent 4277fee commit 1afe80a
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 2 deletions.
5 changes: 4 additions & 1 deletion lib/src/main/kotlin/com/openmeteo/api/Marine.kt
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import com.openmeteo.api.common.Options
import com.openmeteo.api.common.http.Endpoint
import com.openmeteo.api.common.time.Date
import com.openmeteo.api.common.time.Timezone
import com.openmeteo.api.common.units.LengthUnit
import com.openmeteo.api.common.units.Unit
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
Expand Down Expand Up @@ -32,8 +33,10 @@ object Marine : Endpoint(
override val pastDays: Int? = null,
override val timezone: Timezone? = null,
override val cellSelection: CellSelection? = null,
@SerialName("length_unit")
override val lengthUnit: LengthUnit? = null,
) : Q.Coordinate, Q.Daily, Q.Hourly, Q.TimeFormat, Q.Timezone, Q.PastDays,
Q.DateRange, Q.CellSelection
Q.DateRange, Q.CellSelection, Q.LengthUnit

@Serializable
open class Response(
Expand Down
10 changes: 10 additions & 0 deletions lib/src/main/kotlin/com/openmeteo/api/common/query/Query.kt
Original file line number Diff line number Diff line change
Expand Up @@ -188,6 +188,16 @@ interface Query {
val precipitationUnit: com.openmeteo.api.common.units.PrecipitationUnit?
}

/**
* Query for resources that may include lengths
*/
interface LengthUnit : Query {
/**
* The requested length unit
*/
val lengthUnit: com.openmeteo.api.common.units.LengthUnit?
}

/**
* Query for resources that can use different data models.
*/
Expand Down
10 changes: 10 additions & 0 deletions lib/src/main/kotlin/com/openmeteo/api/common/units/LengthUnit.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package com.openmeteo.api.common.units

import kotlinx.serialization.SerialName

enum class LengthUnit {
@SerialName("metric")
Metric,
@SerialName("imperial")
Imperial,
}
4 changes: 3 additions & 1 deletion lib/src/main/kotlin/com/openmeteo/api/common/units/Unit.kt
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,9 @@ enum class Unit(vararg val alias: @Contextual Any) {
@SerialName("cm")
Centimeters,
@SerialName("m")
Meters,
Meters(LengthUnit.Metric),
@SerialName("ft")
Feet(LengthUnit.Imperial),
@SerialName("W/m²")
WattPerSquareMeter,
@SerialName("μg/m³")
Expand Down

0 comments on commit 1afe80a

Please sign in to comment.