refactor: prepend "Ptv" to ptv api structures

This commit is contained in:
LavaDesu 2025-04-29 20:40:45 +10:00
parent ea08db364e
commit 6a55c86e38
Signed by: cilly
GPG key ID: 6500251E087653C9
6 changed files with 30 additions and 30 deletions

View file

@ -13,15 +13,15 @@ import io.ktor.serialization.kotlinx.json.json
import kotlinx.serialization.Serializable
import kotlinx.serialization.json.Json
import moe.lava.banksia.Constants
import moe.lava.banksia.api.ptv.structures.Route
import moe.lava.banksia.api.ptv.structures.PtvRoute
import moe.lava.banksia.log
import okio.ByteString.Companion.encodeUtf8
object Responses {
@Serializable
data class Route(val route: moe.lava.banksia.api.ptv.structures.Route)
data class Route(val route: moe.lava.banksia.api.ptv.structures.PtvRoute)
@Serializable
data class Routes(val routes: List<moe.lava.banksia.api.ptv.structures.Route>)
data class Routes(val routes: List<moe.lava.banksia.api.ptv.structures.PtvRoute>)
}
class PtvService {
@ -47,7 +47,7 @@ class PtvService {
}
}
suspend fun route(id: Int, includeGeopath: Boolean = false): Route {
suspend fun route(id: Int, includeGeopath: Boolean = false): PtvRoute {
val response: Responses.Route = client.get("routes") {
url {
appendPathSegments(id.toString())
@ -57,7 +57,7 @@ class PtvService {
return response.route
}
suspend fun routes(): List<Route> {
suspend fun routes(): List<PtvRoute> {
val response: Responses.Routes = client.get("routes").body()
return response.routes
}

View file

@ -16,7 +16,7 @@ enum class GtfsSubType(val value: Int) {
}
@Serializable
data class Geopath(
data class PtvGeopath(
@SerialName("direction_id") val directionId: Int,
@SerialName("valid_from") val validFrom: String,
@SerialName("valid_to") val validTo: String,
@ -24,13 +24,13 @@ data class Geopath(
)
@Serializable
data class Route(
@SerialName("route_type") val routeType: RouteType,
data class PtvRoute(
@SerialName("route_type") val routeType: PtvRouteType,
@SerialName("route_id") val routeId: Int,
@SerialName("route_number") val routeNumber: String,
@SerialName("route_name") val routeName: String,
@SerialName("route_gtfs_id") val routeGtfsId: String,
@SerialName("geopath") val geopath: List<Geopath>,
@SerialName("geopath") val geopath: List<PtvGeopath>,
) {
fun gtfsSubType(): GtfsSubType? {
GtfsSubType.entries.forEach {

View file

@ -8,23 +8,23 @@ import kotlinx.serialization.descriptors.SerialDescriptor
import kotlinx.serialization.encoding.Decoder
import kotlinx.serialization.encoding.Encoder
private object RouteTypeSerializer : KSerializer<RouteType> {
private object PtvRouteTypeSerialiser : KSerializer<PtvRouteType> {
override val descriptor: SerialDescriptor = PrimitiveSerialDescriptor(
RouteType::class.qualifiedName!!,
PtvRouteType::class.qualifiedName!!,
PrimitiveKind.INT)
override fun serialize(encoder: Encoder, value: RouteType) {
override fun serialize(encoder: Encoder, value: PtvRouteType) {
encoder.encodeInt(value.ordinal)
}
override fun deserialize(decoder: Decoder): RouteType {
override fun deserialize(decoder: Decoder): PtvRouteType {
val index = decoder.decodeInt()
return RouteType.entries[index]
return PtvRouteType.entries[index]
}
}
@Serializable(with = RouteTypeSerializer::class)
enum class RouteType {
@Serializable(with = PtvRouteTypeSerialiser::class)
enum class PtvRouteType {
TRAIN,
TRAM,
BUS,