feat: basic stop markers on route

This commit is contained in:
LavaDesu 2025-04-29 22:58:26 +10:00
parent 6a5a9b4974
commit 67f18afc01
Signed by: cilly
GPG key ID: 6500251E087653C9
5 changed files with 108 additions and 6 deletions

View file

@ -14,6 +14,8 @@ import kotlinx.serialization.Serializable
import kotlinx.serialization.json.Json
import moe.lava.banksia.Constants
import moe.lava.banksia.api.ptv.structures.PtvRoute
import moe.lava.banksia.api.ptv.structures.PtvRouteType
import moe.lava.banksia.api.ptv.structures.PtvStop
import moe.lava.banksia.log
import okio.ByteString.Companion.encodeUtf8
@ -22,6 +24,9 @@ object Responses {
data class PtvRouteResponse(val route: PtvRoute)
@Serializable
data class PtvRoutesResponse(val routes: List<PtvRoute>)
@Serializable
data class PtvStopsResponse(val stops: List<PtvStop>)
}
class PtvService {
@ -61,4 +66,17 @@ class PtvService {
val response: Responses.PtvRoutesResponse = client.get("routes").body()
return response.routes
}
suspend fun stopsByRoute(routeId: Int, routeType: PtvRouteType): List<PtvStop> {
val response: Responses.PtvStopsResponse = client.get("stops/route") {
url {
appendPathSegments(
routeId.toString(),
"route_type",
routeType.ordinal.toString()
)
}
}.body()
return response.stops
}
}

View file

@ -0,0 +1,13 @@
package moe.lava.banksia.api.ptv.structures
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
@Serializable
data class PtvStop(
@SerialName("stop_id") val stopId: Int,
@SerialName("stop_name") val stopName: String,
@SerialName("stop_latitude") val stopLatitude: Double?,
@SerialName("stop_longitude") val stopLongitude: Double?,
@SerialName("route_type") val routeType: PtvRouteType,
)