From 1366da35eb569a9b1efdf7252adbcfbede7e32d6 Mon Sep 17 00:00:00 2001 From: Iván Ávalos Date: Thu, 20 Jan 2022 21:57:54 -0600 Subject: Fallback ApiClient to default URL, so pre-URL-switch-capable apps don't fail at login --- .../java/mx/trackermap/TrackerMap/android/TrackerApp.kt | 16 +++++++++------- .../trackermap/TrackerMap/client/apis/AttributesApi.kt | 2 +- .../mx/trackermap/TrackerMap/client/apis/CalendarsApi.kt | 2 +- .../mx/trackermap/TrackerMap/client/apis/CommandsApi.kt | 2 +- .../mx/trackermap/TrackerMap/client/apis/DevicesApi.kt | 2 +- .../mx/trackermap/TrackerMap/client/apis/DriversApi.kt | 2 +- .../mx/trackermap/TrackerMap/client/apis/EventsApi.kt | 2 +- .../mx/trackermap/TrackerMap/client/apis/GeofencesApi.kt | 2 +- .../mx/trackermap/TrackerMap/client/apis/GroupsApi.kt | 2 +- .../trackermap/TrackerMap/client/apis/MaintenanceApi.kt | 2 +- .../TrackerMap/client/apis/NotificationsApi.kt | 2 +- .../trackermap/TrackerMap/client/apis/PermissionsApi.kt | 2 +- .../mx/trackermap/TrackerMap/client/apis/PositionsApi.kt | 2 +- .../mx/trackermap/TrackerMap/client/apis/ReportsApi.kt | 2 +- .../mx/trackermap/TrackerMap/client/apis/ServerApi.kt | 2 +- .../mx/trackermap/TrackerMap/client/apis/SessionApi.kt | 2 +- .../trackermap/TrackerMap/client/apis/StatisticsApi.kt | 2 +- .../mx/trackermap/TrackerMap/client/apis/UsersApi.kt | 2 +- .../TrackerMap/client/infrastructure/ApiClient.kt | 6 ++++-- 19 files changed, 30 insertions(+), 26 deletions(-) diff --git a/androidApp/src/main/java/mx/trackermap/TrackerMap/android/TrackerApp.kt b/androidApp/src/main/java/mx/trackermap/TrackerMap/android/TrackerApp.kt index 2901dbb..c21cfe1 100644 --- a/androidApp/src/main/java/mx/trackermap/TrackerMap/android/TrackerApp.kt +++ b/androidApp/src/main/java/mx/trackermap/TrackerMap/android/TrackerApp.kt @@ -1,6 +1,7 @@ package mx.trackermap.TrackerMap.android import android.app.Application +import androidx.preference.PreferenceManager import kotlinx.coroutines.DelicateCoroutinesApi import mx.trackermap.TrackerMap.android.details.commands.UnitCommandsViewModel import mx.trackermap.TrackerMap.android.details.information.UnitInformationViewModel @@ -29,13 +30,14 @@ open class TrackerApp : Application() { super.onCreate() val appModule = module { - factory { SessionApi() } - factory { UsersApi() } - factory { DevicesApi() } - factory { PositionsApi() } - factory { CommandsApi() } - factory { ReportsApi() } - factory { GeofencesApi() } + single { getString(R.string.default_server_url) } + factory { SessionApi(get()) } + factory { UsersApi(get()) } + factory { DevicesApi(get()) } + factory { PositionsApi(get()) } + factory { CommandsApi(get()) } + factory { ReportsApi(get()) } + factory { GeofencesApi(get()) } factory { SessionController(get(), get()) } factory { UnitsController(get(), get()) } diff --git a/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/apis/AttributesApi.kt b/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/apis/AttributesApi.kt index 1c9b663..2a67fd0 100644 --- a/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/apis/AttributesApi.kt +++ b/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/apis/AttributesApi.kt @@ -15,7 +15,7 @@ import mx.trackermap.TrackerMap.client.models.Attribute import mx.trackermap.TrackerMap.client.infrastructure.* -class AttributesApi : ApiClient() { +class AttributesApi(defaultBaseUrl: String) : ApiClient(defaultBaseUrl) { /** * Fetch a list of Attributes diff --git a/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/apis/CalendarsApi.kt b/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/apis/CalendarsApi.kt index 56ee7b5..8dd2da8 100644 --- a/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/apis/CalendarsApi.kt +++ b/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/apis/CalendarsApi.kt @@ -15,7 +15,7 @@ import mx.trackermap.TrackerMap.client.models.Calendar import mx.trackermap.TrackerMap.client.infrastructure.* -class CalendarsApi : ApiClient() { +class CalendarsApi(defaultBaseUrl: String) : ApiClient(defaultBaseUrl) { /** * Fetch a list of Calendars diff --git a/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/apis/CommandsApi.kt b/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/apis/CommandsApi.kt index f00bc93..8ee7436 100644 --- a/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/apis/CommandsApi.kt +++ b/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/apis/CommandsApi.kt @@ -16,7 +16,7 @@ import mx.trackermap.TrackerMap.client.models.CommandType import mx.trackermap.TrackerMap.client.infrastructure.* -class CommandsApi : ApiClient() { +class CommandsApi(defaultBaseUrl: String) : ApiClient(defaultBaseUrl) { /** * Fetch a list of Saved Commands diff --git a/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/apis/DevicesApi.kt b/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/apis/DevicesApi.kt index 22903d1..74d105f 100644 --- a/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/apis/DevicesApi.kt +++ b/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/apis/DevicesApi.kt @@ -16,7 +16,7 @@ import mx.trackermap.TrackerMap.client.models.DeviceAccumulators import mx.trackermap.TrackerMap.client.infrastructure.* -class DevicesApi : ApiClient() { +class DevicesApi(defaultBaseUrl: String) : ApiClient(defaultBaseUrl) { /** * Fetch a list of Devices diff --git a/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/apis/DriversApi.kt b/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/apis/DriversApi.kt index 7cf26d0..a9f47b8 100644 --- a/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/apis/DriversApi.kt +++ b/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/apis/DriversApi.kt @@ -15,7 +15,7 @@ import mx.trackermap.TrackerMap.client.models.Driver import mx.trackermap.TrackerMap.client.infrastructure.* -class DriversApi : ApiClient() { +class DriversApi(defaultBaseUrl: String) : ApiClient(defaultBaseUrl) { /** * Fetch a list of Drivers diff --git a/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/apis/EventsApi.kt b/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/apis/EventsApi.kt index 5e5b8e6..360d6e1 100644 --- a/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/apis/EventsApi.kt +++ b/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/apis/EventsApi.kt @@ -15,7 +15,7 @@ import mx.trackermap.TrackerMap.client.models.Event import mx.trackermap.TrackerMap.client.infrastructure.* -class EventsApi : ApiClient() { +class EventsApi(defaultBaseUrl: String) : ApiClient(defaultBaseUrl) { /** * diff --git a/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/apis/GeofencesApi.kt b/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/apis/GeofencesApi.kt index 23ac8c8..d7174e5 100644 --- a/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/apis/GeofencesApi.kt +++ b/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/apis/GeofencesApi.kt @@ -15,7 +15,7 @@ import mx.trackermap.TrackerMap.client.models.Geofence import mx.trackermap.TrackerMap.client.infrastructure.* -class GeofencesApi : ApiClient() { +class GeofencesApi(defaultBaseUrl: String) : ApiClient(defaultBaseUrl) { /** * Fetch a list of Geofences diff --git a/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/apis/GroupsApi.kt b/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/apis/GroupsApi.kt index 3b0dfa1..620a25e 100644 --- a/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/apis/GroupsApi.kt +++ b/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/apis/GroupsApi.kt @@ -15,7 +15,7 @@ import mx.trackermap.TrackerMap.client.models.Group import mx.trackermap.TrackerMap.client.infrastructure.* -class GroupsApi : ApiClient() { +class GroupsApi(defaultBaseUrl: String) : ApiClient(defaultBaseUrl) { /** * Fetch a list of Groups diff --git a/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/apis/MaintenanceApi.kt b/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/apis/MaintenanceApi.kt index 92480fe..5b10e9e 100644 --- a/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/apis/MaintenanceApi.kt +++ b/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/apis/MaintenanceApi.kt @@ -15,7 +15,7 @@ import mx.trackermap.TrackerMap.client.models.Maintenance import mx.trackermap.TrackerMap.client.infrastructure.* -class MaintenanceApi : ApiClient() { +class MaintenanceApi(defaultBaseUrl: String) : ApiClient(defaultBaseUrl) { /** * Fetch a list of Maintenance diff --git a/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/apis/NotificationsApi.kt b/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/apis/NotificationsApi.kt index 1f0d744..290a14d 100644 --- a/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/apis/NotificationsApi.kt +++ b/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/apis/NotificationsApi.kt @@ -16,7 +16,7 @@ import mx.trackermap.TrackerMap.client.models.NotificationType import mx.trackermap.TrackerMap.client.infrastructure.* -class NotificationsApi : ApiClient() { +class NotificationsApi(defaultBaseUrl: String) : ApiClient(defaultBaseUrl) { /** * Fetch a list of Notifications diff --git a/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/apis/PermissionsApi.kt b/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/apis/PermissionsApi.kt index 02c9348..33aab48 100644 --- a/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/apis/PermissionsApi.kt +++ b/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/apis/PermissionsApi.kt @@ -15,7 +15,7 @@ import mx.trackermap.TrackerMap.client.models.Permission import mx.trackermap.TrackerMap.client.infrastructure.* -class PermissionsApi : ApiClient() { +class PermissionsApi(defaultBaseUrl: String) : ApiClient(defaultBaseUrl) { /** * Unlink an Object from another Object diff --git a/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/apis/PositionsApi.kt b/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/apis/PositionsApi.kt index ecbf649..61285e9 100644 --- a/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/apis/PositionsApi.kt +++ b/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/apis/PositionsApi.kt @@ -15,7 +15,7 @@ import mx.trackermap.TrackerMap.client.models.Position import mx.trackermap.TrackerMap.client.infrastructure.* -class PositionsApi : ApiClient() { +class PositionsApi(defaultBaseUrl: String) : ApiClient(defaultBaseUrl) { /** * Fetches a list of Positions diff --git a/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/apis/ReportsApi.kt b/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/apis/ReportsApi.kt index 3dbee22..569a036 100644 --- a/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/apis/ReportsApi.kt +++ b/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/apis/ReportsApi.kt @@ -20,7 +20,7 @@ import mx.trackermap.TrackerMap.client.models.ReportTrips import mx.trackermap.TrackerMap.client.infrastructure.* -class ReportsApi : ApiClient() { +class ReportsApi(defaultBaseUrl: String) : ApiClient(defaultBaseUrl) { /** * Fetch a list of Events within the time period for the Devices or Groups diff --git a/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/apis/ServerApi.kt b/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/apis/ServerApi.kt index 3c7787d..bf65dfe 100644 --- a/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/apis/ServerApi.kt +++ b/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/apis/ServerApi.kt @@ -15,7 +15,7 @@ import mx.trackermap.TrackerMap.client.models.Server import mx.trackermap.TrackerMap.client.infrastructure.* -class ServerApi : ApiClient() { +class ServerApi(defaultBaseUrl: String) : ApiClient(defaultBaseUrl) { /** * Fetch Server information diff --git a/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/apis/SessionApi.kt b/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/apis/SessionApi.kt index ad9e450..3f90c4c 100644 --- a/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/apis/SessionApi.kt +++ b/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/apis/SessionApi.kt @@ -18,7 +18,7 @@ import mx.trackermap.TrackerMap.client.infrastructure.* const val SERVER_URL_KEY = "server_url" const val ACCESS_TOKEN_KEY = "access_token" -class SessionApi : ApiClient() { +class SessionApi(defaultBaseUrl: String) : ApiClient(defaultBaseUrl) { /** * Close the Session diff --git a/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/apis/StatisticsApi.kt b/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/apis/StatisticsApi.kt index 1857cc5..d121f81 100644 --- a/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/apis/StatisticsApi.kt +++ b/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/apis/StatisticsApi.kt @@ -15,7 +15,7 @@ import mx.trackermap.TrackerMap.client.models.Statistics import mx.trackermap.TrackerMap.client.infrastructure.* -class StatisticsApi : ApiClient() { +class StatisticsApi(defaultBaseUrl: String) : ApiClient(defaultBaseUrl) { /** * Fetch server Statistics diff --git a/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/apis/UsersApi.kt b/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/apis/UsersApi.kt index 7b8d837..51f2138 100644 --- a/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/apis/UsersApi.kt +++ b/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/apis/UsersApi.kt @@ -15,7 +15,7 @@ import mx.trackermap.TrackerMap.client.models.User import mx.trackermap.TrackerMap.client.infrastructure.* -class UsersApi : ApiClient() { +class UsersApi(defaultBaseUrl: String) : ApiClient(defaultBaseUrl) { /** * Fetch a list of Users diff --git a/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/infrastructure/ApiClient.kt b/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/infrastructure/ApiClient.kt index 88aaa26..e5413e5 100644 --- a/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/infrastructure/ApiClient.kt +++ b/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/infrastructure/ApiClient.kt @@ -20,7 +20,9 @@ import mx.trackermap.TrackerMap.client.apis.ACCESS_TOKEN_KEY import mx.trackermap.TrackerMap.client.apis.SERVER_URL_KEY import kotlinx.serialization.json.Json as KotlinJson -open class ApiClient() { +open class ApiClient( + defaultBaseUrl: String = "", +) { companion object { protected const val ApiContentType = "Content-Type" protected const val ApiAccept = "Accept" @@ -64,7 +66,7 @@ open class ApiClient() { init { val settings = Settings() - baseUrl = settings.getString(SERVER_URL_KEY, "") + baseUrl = settings.getString(SERVER_URL_KEY, defaultBaseUrl) token = settings.getString(ACCESS_TOKEN_KEY, "") } -- cgit v1.2.3