app: ApiService make server info return the api url
authorDa Risk <da_risk@geekorum.com>
Thu, 05 Jan 2023 12:05:40 -0400
changeset 934 e6322bf36325
parent 933 f6af10dfeb75
child 935 ec942dc5c721
app: ApiService make server info return the api url
app/src/main/java/com/geekorum/ttrss/network/ApiRetrofitService.kt
app/src/main/java/com/geekorum/ttrss/network/ApiService.kt
--- a/app/src/main/java/com/geekorum/ttrss/network/ApiRetrofitService.kt	Thu Jan 05 10:32:22 2023 -0400
+++ b/app/src/main/java/com/geekorum/ttrss/network/ApiRetrofitService.kt	Thu Jan 05 12:05:40 2023 -0400
@@ -21,30 +21,18 @@
 package com.geekorum.ttrss.network
 
 import com.geekorum.ttrss.accounts.ServerInformation
-import com.geekorum.ttrss.data.Article
-import com.geekorum.ttrss.data.ArticleContentIndexed
-import com.geekorum.ttrss.data.ArticleWithAttachments
+import com.geekorum.ttrss.data.*
 import com.geekorum.ttrss.data.Attachment
-import com.geekorum.ttrss.data.Category
 import com.geekorum.ttrss.data.Feed
 import com.geekorum.ttrss.providers.ArticlesContract
 import com.geekorum.ttrss.webapi.ApiCallException
 import com.geekorum.ttrss.webapi.RetrofitServiceHelper
 import com.geekorum.ttrss.webapi.TinyRssApi
 import com.geekorum.ttrss.webapi.TokenRetriever
-import com.geekorum.ttrss.webapi.model.FeedCategory
-import com.geekorum.ttrss.webapi.model.GetApiLevelRequestPayload
-import com.geekorum.ttrss.webapi.model.GetArticlesRequestPayload
+import com.geekorum.ttrss.webapi.model.*
 import com.geekorum.ttrss.webapi.model.GetArticlesRequestPayload.SortOrder
 import com.geekorum.ttrss.webapi.model.GetArticlesRequestPayload.SortOrder.DATE_REVERSE
 import com.geekorum.ttrss.webapi.model.GetArticlesRequestPayload.SortOrder.FEED_DATES
-import com.geekorum.ttrss.webapi.model.GetCategoriesRequestPayload
-import com.geekorum.ttrss.webapi.model.GetConfigRequestPayload
-import com.geekorum.ttrss.webapi.model.GetFeedsRequestPayload
-import com.geekorum.ttrss.webapi.model.GetVersionRequestPayload
-import com.geekorum.ttrss.webapi.model.Headline
-import com.geekorum.ttrss.webapi.model.ResponsePayload
-import com.geekorum.ttrss.webapi.model.UpdateArticleRequestPayload
 import kotlinx.coroutines.async
 import kotlinx.coroutines.supervisorScope
 
@@ -106,18 +94,11 @@
     override suspend fun getFeeds(): List<Feed> {
         val payload = GetFeedsRequestPayload(true, false,
                     GetFeedsRequestPayload.CATEGORY_ID_ALL_EXCLUDE_VIRTUALS)
-        val getConfigResponsePayload = executeOrFail("Unable to get feeds icons url") {
-            tinyrssApi.getConfig(GetConfigRequestPayload())
-        }
-        val baseFeedsIconsUrl = "${serverInformation.apiUrl}${getConfigResponsePayload.iconsUrl}"
         val response = executeOrFail("Unable to get feeds") {
             tinyrssApi.getFeeds(payload)
         }
         val feedlist = response.result
         return feedlist.map { it.toDataType() }
-            .map {
-                it.copy(feedIconUrl = "$baseFeedsIconsUrl/${it.id}.ico")
-            }
     }
 
     @Throws(ApiCallException::class)
@@ -154,7 +135,9 @@
             }
         }
 
-        ServerInfo(apiLevel = apiLevelDeferred.runCatching { await().level }.getOrNull() ,
+        ServerInfo(
+            apiUrl = serverInformation.apiUrl,
+            apiLevel = apiLevelDeferred.runCatching { await().level }.getOrNull() ,
             feedsIconsUrl = configDeferred.runCatching { await().iconsUrl }.getOrNull(),
             serverVersion = versionDeferred.runCatching { await().version}.getOrNull()
         )
--- a/app/src/main/java/com/geekorum/ttrss/network/ApiService.kt	Thu Jan 05 10:32:22 2023 -0400
+++ b/app/src/main/java/com/geekorum/ttrss/network/ApiService.kt	Thu Jan 05 12:05:40 2023 -0400
@@ -20,7 +20,6 @@
  */
 package com.geekorum.ttrss.network
 
-import com.geekorum.ttrss.data.Article
 import com.geekorum.ttrss.data.ArticleWithAttachments
 import com.geekorum.ttrss.data.Category
 import com.geekorum.ttrss.data.Feed
@@ -66,10 +65,12 @@
 
 /**
  * Contains information on the server.
- * Each field is optional and is null if it couldn't be retrieved
+ * Each optional field is null if it couldn't be retrieved
  */
 data class ServerInfo(
+    val apiUrl: String,
     val apiLevel: Int?,
+    /** relative path to access feed icons */
     val feedsIconsUrl: String?,
     val serverVersion: String?
 )