From c5476199d8b70cecfa332b272d1ef5939344cb93 Mon Sep 17 00:00:00 2001 From: Shinokuni Date: Wed, 15 Jan 2020 19:00:28 +0100 Subject: [PATCH] Delete model for Nextcloud News read state api calls and use a map instead --- .../services/nextcloudnews/NextNewsAPI.java | 28 +++++++++++-------- .../nextcloudnews/NextNewsService.java | 3 +- .../nextcloudnews/json/NextNewsItemIds.java | 20 ------------- 3 files changed, 18 insertions(+), 33 deletions(-) delete mode 100644 readropslibrary/src/main/java/com/readrops/readropslibrary/services/nextcloudnews/json/NextNewsItemIds.java diff --git a/readropslibrary/src/main/java/com/readrops/readropslibrary/services/nextcloudnews/NextNewsAPI.java b/readropslibrary/src/main/java/com/readrops/readropslibrary/services/nextcloudnews/NextNewsAPI.java index a1e45cbf..ab1451f3 100644 --- a/readropslibrary/src/main/java/com/readrops/readropslibrary/services/nextcloudnews/NextNewsAPI.java +++ b/readropslibrary/src/main/java/com/readrops/readropslibrary/services/nextcloudnews/NextNewsAPI.java @@ -15,7 +15,6 @@ import com.readrops.readropslibrary.services.nextcloudnews.adapters.NextNewsFeed import com.readrops.readropslibrary.services.nextcloudnews.adapters.NextNewsFoldersAdapter; import com.readrops.readropslibrary.services.nextcloudnews.adapters.NextNewsItemsAdapter; import com.readrops.readropslibrary.services.nextcloudnews.json.NextNewsFolder; -import com.readrops.readropslibrary.services.nextcloudnews.json.NextNewsItemIds; import com.readrops.readropslibrary.services.nextcloudnews.json.NextNewsUser; import com.readrops.readropslibrary.utils.ConflictException; import com.readrops.readropslibrary.utils.LibUtils; @@ -138,20 +137,27 @@ public class NextNewsAPI extends API { } private void putModifiedItems(NextNewsSyncData data, NextNewsSyncResult syncResult) throws IOException { - if (data.getReadItems().size() == 0 && data.getUnreadItems().size() == 0) - return; + if (!data.getReadItems().isEmpty()) { + Map> itemIdsMap = new HashMap<>(); + itemIdsMap.put("items", data.getReadItems()); - Response readItemsResponse = api.setArticlesState(StateType.READ.name().toLowerCase(), - new NextNewsItemIds(data.getReadItems())).execute(); + Response readItemsResponse = api.setArticlesState(StateType.READ.name().toLowerCase(), + itemIdsMap).execute(); - Response unreadItemsResponse = api.setArticlesState(StateType.UNREAD.toString().toLowerCase(), - new NextNewsItemIds(data.getUnreadItems())).execute(); + if (!readItemsResponse.isSuccessful()) + syncResult.setError(true); + } - if (!readItemsResponse.isSuccessful()) - syncResult.setError(true); + if (!data.getUnreadItems().isEmpty()) { + Map> itemIdsMap = new HashMap<>(); + itemIdsMap.put("items", data.getUnreadItems()); - if (!unreadItemsResponse.isSuccessful()) - syncResult.setError(true); + Response unreadItemsResponse = api.setArticlesState(StateType.UNREAD.toString().toLowerCase(), + itemIdsMap).execute(); + + if (!unreadItemsResponse.isSuccessful()) + syncResult.setError(true); + } } public List createFolder(NextNewsFolder folder) throws IOException, UnknownFormatException, ConflictException { diff --git a/readropslibrary/src/main/java/com/readrops/readropslibrary/services/nextcloudnews/NextNewsService.java b/readropslibrary/src/main/java/com/readrops/readropslibrary/services/nextcloudnews/NextNewsService.java index adfec2a2..57854c23 100644 --- a/readropslibrary/src/main/java/com/readrops/readropslibrary/services/nextcloudnews/NextNewsService.java +++ b/readropslibrary/src/main/java/com/readrops/readropslibrary/services/nextcloudnews/NextNewsService.java @@ -4,7 +4,6 @@ import com.readrops.readropsdb.entities.Feed; import com.readrops.readropsdb.entities.Folder; import com.readrops.readropsdb.entities.Item; import com.readrops.readropslibrary.services.nextcloudnews.json.NextNewsFolder; -import com.readrops.readropslibrary.services.nextcloudnews.json.NextNewsItemIds; import com.readrops.readropslibrary.services.nextcloudnews.json.NextNewsUser; import java.util.List; @@ -40,7 +39,7 @@ public interface NextNewsService { Call> getNewItems(@Query("lastModified") long lastModified, @Query("type") int type); @PUT("items/{stateType}/multiple") - Call setArticlesState(@Path("stateType") String stateType, @Body NextNewsItemIds items); + Call setArticlesState(@Path("stateType") String stateType, @Body Map> itemIdsMap); @POST("feeds") Call> createFeed(@Query("url") String url, @Query("folderId") int folderId); diff --git a/readropslibrary/src/main/java/com/readrops/readropslibrary/services/nextcloudnews/json/NextNewsItemIds.java b/readropslibrary/src/main/java/com/readrops/readropslibrary/services/nextcloudnews/json/NextNewsItemIds.java deleted file mode 100644 index a6976f6e..00000000 --- a/readropslibrary/src/main/java/com/readrops/readropslibrary/services/nextcloudnews/json/NextNewsItemIds.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.readrops.readropslibrary.services.nextcloudnews.json; - -import java.util.List; - -public class NextNewsItemIds { - - private List items; - - public NextNewsItemIds(List items) { - this.items = items; - } - - public List getItems() { - return items; - } - - public void setItems(List items) { - this.items = items; - } -}