1
1
mirror of https://github.com/Pygmalion69/OpenTopoMapViewer.git synced 2025-10-06 00:02:42 +02:00

Use Profile enum

This commit is contained in:
Pygmalion69
2025-08-30 11:10:07 +02:00
parent 6c4c09e7c6
commit 7a2375106c
43 changed files with 183 additions and 176 deletions

View File

@@ -31,7 +31,7 @@ class ExportInstrumentedTest {
listOf(8.686507, 49.41943) // maxLon, maxLat
)
val response = with(helper) { client.export(bbox = bbox, profile ="driving-car") }
val response = with(helper) { client.export(bbox = bbox, profile = Profile.DRIVING_CAR) }
assertNotNull("Export response should not be null", response)
// Basic sanity checks on structure

View File

@@ -31,7 +31,7 @@ class IsochronesInstrumentedTest {
)
// 5 minutes (300 seconds)
val range = listOf(300)
val profile = "driving-car"
val profile = Profile.DRIVING_CAR
val response = with(helper) {
client.getIsochrones(

View File

@@ -31,7 +31,7 @@ class MatrixInstrumentedTest {
listOf(8.681495, 49.41461), // Heidelberg center
listOf(8.687872, 49.420318) // Nearby point
)
val profile = "driving-car"
val profile = Profile.DRIVING_CAR
val metrics = listOf("duration", "distance")
val response = with(helper) {

View File

@@ -8,8 +8,8 @@ import org.junit.Assert.assertNotNull
import org.junit.Assert.assertTrue
import org.junit.Test
import org.junit.runner.RunWith
import org.nitri.ors.model.optimization.Job
import org.nitri.ors.model.optimization.Vehicle
import org.nitri.ors.domain.optimization.Job
import org.nitri.ors.domain.optimization.Vehicle
import org.nitri.ors.helper.OptimizationHelper
@RunWith(AndroidJUnit4::class)

View File

@@ -7,11 +7,11 @@ import kotlinx.coroutines.runBlocking
import org.junit.Assert.*
import org.junit.Test
import org.junit.runner.RunWith
import org.nitri.ors.model.route.GeoJsonRouteResponse
import org.nitri.ors.domain.route.GeoJsonRouteResponse
import org.nitri.ors.helper.RouteHelper
@RunWith(AndroidJUnit4::class)
class RouteRepositoryInstrumentedTest {
class RouteInstrumentedTest {
private fun create(context: Context): Pair<DefaultOrsClient, RouteHelper> {
val apiKey = context.getString(R.string.ors_api_key)
@@ -55,7 +55,8 @@ class RouteRepositoryInstrumentedTest {
val start = Pair(8.681495, 49.41461)
val end = Pair(8.687872, 49.420318)
val route: GeoJsonRouteResponse = with(repository) { client.getRouteGeoJson(start, end, "driving-car") }
val route: GeoJsonRouteResponse = with(repository) { client.getRouteGeoJson(start, end,
Profile.DRIVING_CAR) }
assertNotNull("Route should not be null", route)
}

View File

@@ -31,7 +31,7 @@ class SnapInstrumentedTest {
listOf(8.681495, 49.41461), // Heidelberg center
listOf(8.687872, 49.420318) // Nearby point
)
val profile = "driving-car"
val profile = Profile.DRIVING_CAR
val radius = 50 // meters
val response = with(helper) {
@@ -63,7 +63,7 @@ class SnapInstrumentedTest {
listOf(8.681495, 49.41461),
listOf(8.687872, 49.420318)
)
val profile = "driving-car"
val profile = Profile.DRIVING_CAR
val radius = 50
val response = with(helper) {
@@ -93,7 +93,7 @@ class SnapInstrumentedTest {
listOf(8.681495, 49.41461),
listOf(8.687872, 49.420318)
)
val profile = "driving-car"
val profile = Profile.DRIVING_CAR
val radius = 50
val response = with(repository) {

View File

@@ -1,28 +1,28 @@
package org.nitri.ors
import android.content.Context
import org.nitri.ors.model.elevation.ElevationLineRequest
import org.nitri.ors.model.elevation.ElevationLineResponse
import org.nitri.ors.model.elevation.ElevationPointRequest
import org.nitri.ors.model.elevation.ElevationPointResponse
import org.nitri.ors.model.export.ExportRequest
import org.nitri.ors.model.export.ExportResponse
import org.nitri.ors.model.export.TopoJsonExportResponse
import org.nitri.ors.model.geocode.GeocodeSearchResponse
import org.nitri.ors.model.isochrones.IsochronesRequest
import org.nitri.ors.model.isochrones.IsochronesResponse
import org.nitri.ors.model.matrix.MatrixRequest
import org.nitri.ors.model.matrix.MatrixResponse
import org.nitri.ors.model.optimization.OptimizationRequest
import org.nitri.ors.model.optimization.OptimizationResponse
import org.nitri.ors.model.pois.PoisGeoJsonResponse
import org.nitri.ors.model.pois.PoisRequest
import org.nitri.ors.model.route.GeoJsonRouteResponse
import org.nitri.ors.model.route.RouteRequest
import org.nitri.ors.model.route.RouteResponse
import org.nitri.ors.model.snap.SnapGeoJsonResponse
import org.nitri.ors.model.snap.SnapRequest
import org.nitri.ors.model.snap.SnapResponse
import org.nitri.ors.domain.elevation.ElevationLineRequest
import org.nitri.ors.domain.elevation.ElevationLineResponse
import org.nitri.ors.domain.elevation.ElevationPointRequest
import org.nitri.ors.domain.elevation.ElevationPointResponse
import org.nitri.ors.domain.export.ExportRequest
import org.nitri.ors.domain.export.ExportResponse
import org.nitri.ors.domain.export.TopoJsonExportResponse
import org.nitri.ors.domain.geocode.GeocodeSearchResponse
import org.nitri.ors.domain.isochrones.IsochronesRequest
import org.nitri.ors.domain.isochrones.IsochronesResponse
import org.nitri.ors.domain.matrix.MatrixRequest
import org.nitri.ors.domain.matrix.MatrixResponse
import org.nitri.ors.domain.optimization.OptimizationRequest
import org.nitri.ors.domain.optimization.OptimizationResponse
import org.nitri.ors.domain.pois.PoisGeoJsonResponse
import org.nitri.ors.domain.pois.PoisRequest
import org.nitri.ors.domain.route.GeoJsonRouteResponse
import org.nitri.ors.domain.route.RouteRequest
import org.nitri.ors.domain.route.RouteResponse
import org.nitri.ors.domain.snap.SnapGeoJsonResponse
import org.nitri.ors.domain.snap.SnapRequest
import org.nitri.ors.domain.snap.SnapResponse
import org.nitri.ors.restclient.OpenRouteServiceRestClient
class DefaultOrsClient(apiKey: String, context: Context) : OrsClient {
@@ -43,66 +43,66 @@ class DefaultOrsClient(apiKey: String, context: Context) : OrsClient {
}
override suspend fun getRouteGeoJson(
profile: String,
profile: Profile,
routeRequest: RouteRequest
): GeoJsonRouteResponse {
return api.getRouteGeoJson(profile, routeRequest)
return api.getRouteGeoJson(profile.key, routeRequest)
}
override suspend fun export(
profile: String,
profile: Profile,
exportRequest: ExportRequest
): ExportResponse {
return api.export(profile, exportRequest)
return api.export(profile.key, exportRequest)
}
override suspend fun exportJson(
profile: String,
profile: Profile,
exportRequest: ExportRequest
): ExportResponse {
return api.exportJson(profile, exportRequest)
return api.exportJson(profile.key, exportRequest)
}
override suspend fun exportTopoJson(
profile: String,
profile: Profile,
exportRequest: ExportRequest
): TopoJsonExportResponse {
return api.exportTopoJson(profile, exportRequest)
return api.exportTopoJson(profile.key, exportRequest)
}
override suspend fun getIsochrones(
profile: String,
profile: Profile,
isochronesRequest: IsochronesRequest
): IsochronesResponse {
return api.getIsochrones(profile, isochronesRequest)
return api.getIsochrones(profile.key, isochronesRequest)
}
override suspend fun getMatrix(
profile: String,
profile: Profile,
matrixRequest: MatrixRequest
): MatrixResponse {
return api.getMatrix(profile, matrixRequest)
return api.getMatrix(profile.key, matrixRequest)
}
override suspend fun getSnap(
profile: String,
profile: Profile,
snapRequest: SnapRequest
): SnapResponse {
return api.getSnap(profile, snapRequest)
return api.getSnap(profile.key, snapRequest)
}
override suspend fun getSnapJson(
profile: String,
profile: Profile,
snapRequest: SnapRequest
): SnapResponse {
return api.getSnapJson(profile, snapRequest)
return api.getSnapJson(profile.key, snapRequest)
}
override suspend fun getSnapGeoJson(
profile: String,
profile: Profile,
snapRequest: SnapRequest
): SnapGeoJsonResponse {
return api.getSnapGeoJson(profile, snapRequest)
return api.getSnapGeoJson(profile.key, snapRequest)
}
override suspend fun getPois(poisRequest: PoisRequest): PoisGeoJsonResponse {

View File

@@ -1,27 +1,27 @@
package org.nitri.ors
import org.nitri.ors.model.elevation.ElevationLineRequest
import org.nitri.ors.model.elevation.ElevationLineResponse
import org.nitri.ors.model.elevation.ElevationPointRequest
import org.nitri.ors.model.elevation.ElevationPointResponse
import org.nitri.ors.model.export.ExportRequest
import org.nitri.ors.model.export.ExportResponse
import org.nitri.ors.model.export.TopoJsonExportResponse
import org.nitri.ors.model.geocode.GeocodeSearchResponse
import org.nitri.ors.model.isochrones.IsochronesRequest
import org.nitri.ors.model.isochrones.IsochronesResponse
import org.nitri.ors.model.matrix.MatrixRequest
import org.nitri.ors.model.matrix.MatrixResponse
import org.nitri.ors.model.optimization.OptimizationRequest
import org.nitri.ors.model.optimization.OptimizationResponse
import org.nitri.ors.model.pois.PoisGeoJsonResponse
import org.nitri.ors.model.pois.PoisRequest
import org.nitri.ors.model.route.GeoJsonRouteResponse
import org.nitri.ors.model.route.RouteRequest
import org.nitri.ors.model.route.RouteResponse
import org.nitri.ors.model.snap.SnapGeoJsonResponse
import org.nitri.ors.model.snap.SnapRequest
import org.nitri.ors.model.snap.SnapResponse
import org.nitri.ors.domain.elevation.ElevationLineRequest
import org.nitri.ors.domain.elevation.ElevationLineResponse
import org.nitri.ors.domain.elevation.ElevationPointRequest
import org.nitri.ors.domain.elevation.ElevationPointResponse
import org.nitri.ors.domain.export.ExportRequest
import org.nitri.ors.domain.export.ExportResponse
import org.nitri.ors.domain.export.TopoJsonExportResponse
import org.nitri.ors.domain.geocode.GeocodeSearchResponse
import org.nitri.ors.domain.isochrones.IsochronesRequest
import org.nitri.ors.domain.isochrones.IsochronesResponse
import org.nitri.ors.domain.matrix.MatrixRequest
import org.nitri.ors.domain.matrix.MatrixResponse
import org.nitri.ors.domain.optimization.OptimizationRequest
import org.nitri.ors.domain.optimization.OptimizationResponse
import org.nitri.ors.domain.pois.PoisGeoJsonResponse
import org.nitri.ors.domain.pois.PoisRequest
import org.nitri.ors.domain.route.GeoJsonRouteResponse
import org.nitri.ors.domain.route.RouteRequest
import org.nitri.ors.domain.route.RouteResponse
import org.nitri.ors.domain.snap.SnapGeoJsonResponse
import org.nitri.ors.domain.snap.SnapRequest
import org.nitri.ors.domain.snap.SnapResponse
enum class Profile(val key: String) {
DRIVING_CAR("driving-car"),
@@ -35,29 +35,32 @@ enum class Profile(val key: String) {
WHEELCHAIR("wheelchair")
}
@JvmInline value class Lon(val v: Double)
@JvmInline value class Lat(val v: Double)
data class LonLat(val lon: Double, val lat: Double)
interface OrsClient {
// Directions
suspend fun getRoute(profile: Profile, routeRequest: RouteRequest): RouteResponse
suspend fun getRouteGpx(profile: Profile, routeRequest: RouteRequest): String
suspend fun getRouteGeoJson(profile: String, routeRequest: RouteRequest): GeoJsonRouteResponse
suspend fun getRouteGeoJson(profile: Profile, routeRequest: RouteRequest): GeoJsonRouteResponse
// Export
suspend fun export(profile: String, exportRequest: ExportRequest): ExportResponse
suspend fun exportJson(profile: String, exportRequest: ExportRequest): ExportResponse
suspend fun exportTopoJson(profile: String, exportRequest: ExportRequest): TopoJsonExportResponse
suspend fun export(profile: Profile, exportRequest: ExportRequest): ExportResponse
suspend fun exportJson(profile: Profile, exportRequest: ExportRequest): ExportResponse
suspend fun exportTopoJson(profile: Profile, exportRequest: ExportRequest): TopoJsonExportResponse
// Isochrones
suspend fun getIsochrones(profile: String, isochronesRequest: IsochronesRequest): IsochronesResponse
suspend fun getIsochrones(profile: Profile, isochronesRequest: IsochronesRequest): IsochronesResponse
// Matrix
suspend fun getMatrix(profile: String, matrixRequest: MatrixRequest): MatrixResponse
suspend fun getMatrix(profile: Profile, matrixRequest: MatrixRequest): MatrixResponse
// Snapping
suspend fun getSnap(profile: String, snapRequest: SnapRequest): SnapResponse
suspend fun getSnapJson(profile: String, snapRequest: SnapRequest): SnapResponse
suspend fun getSnapGeoJson(profile: String, snapRequest: SnapRequest): SnapGeoJsonResponse
suspend fun getSnap(profile: Profile, snapRequest: SnapRequest): SnapResponse
suspend fun getSnapJson(profile: Profile, snapRequest: SnapRequest): SnapResponse
suspend fun getSnapGeoJson(profile: Profile, snapRequest: SnapRequest): SnapGeoJsonResponse
// POIs
suspend fun getPois(poisRequest: PoisRequest): PoisGeoJsonResponse

View File

@@ -1,28 +1,28 @@
package org.nitri.ors.api
import okhttp3.ResponseBody
import org.nitri.ors.model.elevation.ElevationLineRequest
import org.nitri.ors.model.elevation.ElevationLineResponse
import org.nitri.ors.model.elevation.ElevationPointRequest
import org.nitri.ors.model.elevation.ElevationPointResponse
import org.nitri.ors.model.export.ExportRequest
import org.nitri.ors.model.export.ExportResponse
import org.nitri.ors.model.export.TopoJsonExportResponse
import org.nitri.ors.model.geocode.GeocodeSearchResponse
import org.nitri.ors.model.isochrones.IsochronesRequest
import org.nitri.ors.model.isochrones.IsochronesResponse
import org.nitri.ors.model.matrix.MatrixRequest
import org.nitri.ors.model.matrix.MatrixResponse
import org.nitri.ors.model.optimization.OptimizationRequest
import org.nitri.ors.model.optimization.OptimizationResponse
import org.nitri.ors.model.pois.PoisGeoJsonResponse
import org.nitri.ors.model.pois.PoisRequest
import org.nitri.ors.model.route.GeoJsonRouteResponse
import org.nitri.ors.model.route.RouteRequest
import org.nitri.ors.model.route.RouteResponse
import org.nitri.ors.model.snap.SnapGeoJsonResponse
import org.nitri.ors.model.snap.SnapRequest
import org.nitri.ors.model.snap.SnapResponse
import org.nitri.ors.domain.elevation.ElevationLineRequest
import org.nitri.ors.domain.elevation.ElevationLineResponse
import org.nitri.ors.domain.elevation.ElevationPointRequest
import org.nitri.ors.domain.elevation.ElevationPointResponse
import org.nitri.ors.domain.export.ExportRequest
import org.nitri.ors.domain.export.ExportResponse
import org.nitri.ors.domain.export.TopoJsonExportResponse
import org.nitri.ors.domain.geocode.GeocodeSearchResponse
import org.nitri.ors.domain.isochrones.IsochronesRequest
import org.nitri.ors.domain.isochrones.IsochronesResponse
import org.nitri.ors.domain.matrix.MatrixRequest
import org.nitri.ors.domain.matrix.MatrixResponse
import org.nitri.ors.domain.optimization.OptimizationRequest
import org.nitri.ors.domain.optimization.OptimizationResponse
import org.nitri.ors.domain.pois.PoisGeoJsonResponse
import org.nitri.ors.domain.pois.PoisRequest
import org.nitri.ors.domain.route.GeoJsonRouteResponse
import org.nitri.ors.domain.route.RouteRequest
import org.nitri.ors.domain.route.RouteResponse
import org.nitri.ors.domain.snap.SnapGeoJsonResponse
import org.nitri.ors.domain.snap.SnapRequest
import org.nitri.ors.domain.snap.SnapResponse
import retrofit2.Response
import retrofit2.http.Body
import retrofit2.http.GET

View File

@@ -1,4 +1,4 @@
package org.nitri.ors.model.elevation
package org.nitri.ors.domain.elevation
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

View File

@@ -1,4 +1,4 @@
package org.nitri.ors.model.elevation
package org.nitri.ors.domain.elevation
import kotlinx.serialization.Serializable

View File

@@ -1,4 +1,4 @@
package org.nitri.ors.model.elevation
package org.nitri.ors.domain.elevation
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

View File

@@ -1,4 +1,4 @@
package org.nitri.ors.model.elevation
package org.nitri.ors.domain.elevation
import kotlinx.serialization.Serializable

View File

@@ -1,4 +1,4 @@
package org.nitri.ors.model.export
package org.nitri.ors.domain.export
import kotlinx.serialization.Serializable

View File

@@ -1,4 +1,4 @@
package org.nitri.ors.model.export
package org.nitri.ors.domain.export
import kotlinx.serialization.KSerializer
import kotlinx.serialization.Serializable

View File

@@ -1,4 +1,4 @@
package org.nitri.ors.model.export
package org.nitri.ors.domain.export
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

View File

@@ -1,4 +1,4 @@
package org.nitri.ors.model.geocode
package org.nitri.ors.domain.geocode
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

View File

@@ -1,4 +1,4 @@
package org.nitri.ors.model.isochrones
package org.nitri.ors.domain.isochrones
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

View File

@@ -1,4 +1,4 @@
package org.nitri.ors.model.isochrones
package org.nitri.ors.domain.isochrones
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

View File

@@ -1,4 +1,4 @@
package org.nitri.ors.model.matrix
package org.nitri.ors.domain.matrix
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

View File

@@ -1,8 +1,8 @@
package org.nitri.ors.model.matrix
package org.nitri.ors.domain.matrix
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import org.nitri.ors.model.meta.Metadata
import org.nitri.ors.domain.meta.Metadata
/**
* Represents the response from an ORS Matrix API request.

View File

@@ -1,4 +1,4 @@
package org.nitri.ors.model.meta
package org.nitri.ors.domain.meta
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

View File

@@ -1,4 +1,4 @@
package org.nitri.ors.model.optimization
package org.nitri.ors.domain.optimization
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

View File

@@ -1,4 +1,4 @@
package org.nitri.ors.model.optimization
package org.nitri.ors.domain.optimization
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

View File

@@ -1,4 +1,4 @@
package org.nitri.ors.model.pois
package org.nitri.ors.domain.pois
import kotlinx.serialization.Required
import kotlinx.serialization.Serializable

View File

@@ -1,4 +1,4 @@
package org.nitri.ors.model.pois
package org.nitri.ors.domain.pois
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

View File

@@ -1,7 +1,7 @@
package org.nitri.ors.model.route
package org.nitri.ors.domain.route
import kotlinx.serialization.Serializable
import org.nitri.ors.model.meta.Metadata
import org.nitri.ors.domain.meta.Metadata
@Serializable
data class GeoJsonRouteResponse(

View File

@@ -1,4 +1,4 @@
package org.nitri.ors.model.route
package org.nitri.ors.domain.route
import kotlinx.serialization.Serializable
import kotlinx.serialization.json.JsonElement

View File

@@ -1,4 +1,4 @@
package org.nitri.ors.model.route
package org.nitri.ors.domain.route
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

View File

@@ -1,8 +1,8 @@
package org.nitri.ors.model.route
package org.nitri.ors.domain.route
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import org.nitri.ors.model.meta.Metadata
import org.nitri.ors.domain.meta.Metadata
@Serializable
data class RouteResponse(

View File

@@ -1,8 +1,8 @@
package org.nitri.ors.model.snap
package org.nitri.ors.domain.snap
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import org.nitri.ors.model.meta.Metadata
import org.nitri.ors.domain.meta.Metadata
/**
* Snap response in GeoJSON format

View File

@@ -1,4 +1,4 @@
package org.nitri.ors.model.snap
package org.nitri.ors.domain.snap
import kotlinx.serialization.Serializable

View File

@@ -1,8 +1,8 @@
package org.nitri.ors.model.snap
package org.nitri.ors.domain.snap
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import org.nitri.ors.model.meta.Metadata
import org.nitri.ors.domain.meta.Metadata
/**
* Response for ORS /v2/snap/{profile}[/json]

View File

@@ -5,10 +5,10 @@ import kotlinx.serialization.json.JsonElement
import kotlinx.serialization.json.JsonObject
import kotlinx.serialization.json.JsonPrimitive
import org.nitri.ors.OrsClient
import org.nitri.ors.model.elevation.ElevationLineRequest
import org.nitri.ors.model.elevation.ElevationLineResponse
import org.nitri.ors.model.elevation.ElevationPointRequest
import org.nitri.ors.model.elevation.ElevationPointResponse
import org.nitri.ors.domain.elevation.ElevationLineRequest
import org.nitri.ors.domain.elevation.ElevationLineResponse
import org.nitri.ors.domain.elevation.ElevationPointRequest
import org.nitri.ors.domain.elevation.ElevationPointResponse
class ElevationHelper() {

View File

@@ -1,14 +1,14 @@
package org.nitri.ors.helper
import org.nitri.ors.OrsClient
import org.nitri.ors.api.OpenRouteServiceApi
import org.nitri.ors.model.export.ExportRequest
import org.nitri.ors.model.export.ExportResponse
import org.nitri.ors.model.export.TopoJsonExportResponse
import org.nitri.ors.Profile
import org.nitri.ors.domain.export.ExportRequest
import org.nitri.ors.domain.export.ExportResponse
import org.nitri.ors.domain.export.TopoJsonExportResponse
class ExportHelper() {
suspend fun OrsClient.export(bbox: List<List<Double>>, geometry: Boolean? = null, profile: String): ExportResponse {
suspend fun OrsClient.export(bbox: List<List<Double>>, geometry: Boolean? = null, profile: Profile): ExportResponse {
val request = ExportRequest(
bbox = bbox,
id = "export_request",
@@ -17,7 +17,7 @@ class ExportHelper() {
return export(profile, request)
}
suspend fun OrsClient.exportJson(bbox: List<List<Double>>, geometry: Boolean? = null, profile: String): ExportResponse {
suspend fun OrsClient.exportJson(bbox: List<List<Double>>, geometry: Boolean? = null, profile: Profile): ExportResponse {
val request = ExportRequest(
bbox = bbox,
id = "export_request_json",
@@ -26,7 +26,7 @@ class ExportHelper() {
return exportJson(profile, request)
}
suspend fun OrsClient.exportTopoJson(bbox: List<List<Double>>, geometry: Boolean? = null, profile: String): TopoJsonExportResponse {
suspend fun OrsClient.exportTopoJson(bbox: List<List<Double>>, geometry: Boolean? = null, profile: Profile): TopoJsonExportResponse {
val request = ExportRequest(
bbox = bbox,
id = "export_request_topo_json",

View File

@@ -1,7 +1,7 @@
package org.nitri.ors.helper
import org.nitri.ors.OrsClient
import org.nitri.ors.model.geocode.GeocodeSearchResponse
import org.nitri.ors.domain.geocode.GeocodeSearchResponse
/**
* Repository for ORS Geocoding endpoints using GET requests only.

View File

@@ -1,15 +1,16 @@
package org.nitri.ors.helper
import org.nitri.ors.OrsClient
import org.nitri.ors.model.isochrones.IsochronesRequest
import org.nitri.ors.model.isochrones.IsochronesResponse
import org.nitri.ors.Profile
import org.nitri.ors.domain.isochrones.IsochronesRequest
import org.nitri.ors.domain.isochrones.IsochronesResponse
class IsochronesHelper() {
suspend fun OrsClient.getIsochrones(
locations: List<List<Double>>,
range: List<Int>,
profile: String,
profile: Profile,
attributes: List<String>? = null,
rangeType: String? = null,
): IsochronesResponse {

View File

@@ -1,8 +1,9 @@
package org.nitri.ors.helper
import org.nitri.ors.OrsClient
import org.nitri.ors.model.matrix.MatrixRequest
import org.nitri.ors.model.matrix.MatrixResponse
import org.nitri.ors.Profile
import org.nitri.ors.domain.matrix.MatrixRequest
import org.nitri.ors.domain.matrix.MatrixResponse
class MatrixHelper() {
@@ -11,7 +12,7 @@ class MatrixHelper() {
*/
suspend fun OrsClient.getMatrix(
locations: List<List<Double>>,
profile: String,
profile: Profile,
metrics: List<String>? = null,
sources: List<Int>? = null,
destinations: List<Int>? = null,

View File

@@ -2,12 +2,12 @@ package org.nitri.ors.helper
import kotlinx.serialization.json.JsonElement
import org.nitri.ors.OrsClient
import org.nitri.ors.model.optimization.CustomMatrix
import org.nitri.ors.model.optimization.Job
import org.nitri.ors.model.optimization.OptimizationRequest
import org.nitri.ors.model.optimization.OptimizationResponse
import org.nitri.ors.model.optimization.Shipment
import org.nitri.ors.model.optimization.Vehicle
import org.nitri.ors.domain.optimization.CustomMatrix
import org.nitri.ors.domain.optimization.Job
import org.nitri.ors.domain.optimization.OptimizationRequest
import org.nitri.ors.domain.optimization.OptimizationResponse
import org.nitri.ors.domain.optimization.Shipment
import org.nitri.ors.domain.optimization.Vehicle
/**
* Repository for the OpenRouteService Optimization endpoint using OrsClient.

View File

@@ -1,10 +1,10 @@
package org.nitri.ors.helper
import org.nitri.ors.OrsClient
import org.nitri.ors.model.pois.GeoJsonGeometry
import org.nitri.ors.model.pois.Geometry
import org.nitri.ors.model.pois.PoisGeoJsonResponse
import org.nitri.ors.model.pois.PoisRequest
import org.nitri.ors.domain.pois.GeoJsonGeometry
import org.nitri.ors.domain.pois.Geometry
import org.nitri.ors.domain.pois.PoisGeoJsonResponse
import org.nitri.ors.domain.pois.PoisRequest
class PoisHelper() {

View File

@@ -2,14 +2,14 @@ package org.nitri.ors.helper
import org.nitri.ors.OrsClient
import org.nitri.ors.Profile
import org.nitri.ors.model.route.GeoJsonRouteResponse
import org.nitri.ors.model.route.RouteRequest
import org.nitri.ors.model.route.RouteResponse
import org.nitri.ors.domain.route.GeoJsonRouteResponse
import org.nitri.ors.domain.route.RouteRequest
import org.nitri.ors.domain.route.RouteResponse
class RouteHelper() {
private fun profileFromKey(key: String): Profile =
Profile.values().firstOrNull { it.key == key }
Profile.entries.firstOrNull { it.key == key }
?: throw IllegalArgumentException("Unknown profile key: $key")
suspend fun OrsClient.getRoute(
@@ -52,7 +52,7 @@ class RouteHelper() {
suspend fun OrsClient.getRouteGeoJson(
start: Pair<Double, Double>,
end: Pair<Double, Double>,
profile: String
profile: Profile
): GeoJsonRouteResponse {
val request = RouteRequest(
coordinates = listOf(

View File

@@ -1,9 +1,10 @@
package org.nitri.ors.helper
import org.nitri.ors.OrsClient
import org.nitri.ors.model.snap.SnapGeoJsonResponse
import org.nitri.ors.model.snap.SnapRequest
import org.nitri.ors.model.snap.SnapResponse
import org.nitri.ors.Profile
import org.nitri.ors.domain.snap.SnapGeoJsonResponse
import org.nitri.ors.domain.snap.SnapRequest
import org.nitri.ors.domain.snap.SnapResponse
class SnapHelper() {
@@ -13,7 +14,7 @@ class SnapHelper() {
suspend fun OrsClient.getSnap(
locations: List<List<Double>>,
radius: Int,
profile: String,
profile: Profile,
id: String? = null,
): SnapResponse {
val request = SnapRequest(
@@ -30,7 +31,7 @@ class SnapHelper() {
suspend fun OrsClient.getSnapJson(
locations: List<List<Double>>,
radius: Int,
profile: String,
profile: Profile,
id: String? = null,
): SnapResponse {
val request = SnapRequest(
@@ -47,7 +48,7 @@ class SnapHelper() {
suspend fun OrsClient.getSnapGeoJson(
locations: List<List<Double>>,
radius: Int,
profile: String,
profile: Profile,
id: String? = null,
): SnapGeoJsonResponse {
val request = SnapRequest(

View File

@@ -6,10 +6,10 @@ import org.junit.Test
import org.mockito.Mockito.mock
import org.mockito.Mockito.verify
import org.mockito.Mockito.`when`
import org.nitri.ors.model.route.Route
import org.nitri.ors.model.route.RouteRequest
import org.nitri.ors.model.route.RouteResponse
import org.nitri.ors.model.route.RouteSummary
import org.nitri.ors.domain.route.Route
import org.nitri.ors.domain.route.RouteRequest
import org.nitri.ors.domain.route.RouteResponse
import org.nitri.ors.domain.route.RouteSummary
import org.nitri.ors.helper.RouteHelper
class RouteHelperTest {