From 05e18ef8e029e365f834b698d21bbc40ab7acad2 Mon Sep 17 00:00:00 2001 From: kohlerpop1 Date: Sat, 27 Jul 2024 13:02:31 -0400 Subject: [PATCH] Added User instance to LiveUserDataMapper Response to access the retrieved user. --- .../tiktok/data/requests/LiveUserData.java | 2 ++ .../tiktok/TikTokLiveHttpOfflineClient.java | 2 +- .../http/mappers/LiveUserDataMapper.java | 21 +++++++++++++++---- 3 files changed, 20 insertions(+), 5 deletions(-) diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/data/requests/LiveUserData.java b/API/src/main/java/io/github/jwdeveloper/tiktok/data/requests/LiveUserData.java index 44ad687..f5c0b26 100644 --- a/API/src/main/java/io/github/jwdeveloper/tiktok/data/requests/LiveUserData.java +++ b/API/src/main/java/io/github/jwdeveloper/tiktok/data/requests/LiveUserData.java @@ -22,6 +22,7 @@ */ package io.github.jwdeveloper.tiktok.data.requests; +import io.github.jwdeveloper.tiktok.data.models.users.User; import lombok.*; public class LiveUserData { @@ -44,6 +45,7 @@ public class LiveUserData { private final UserStatus userStatus; private final String roomId; private final long startTime; + private final User user; public boolean isLiveOnline() { return userStatus == LiveUserData.UserStatus.Live || userStatus == LiveUserData.UserStatus.LivePaused; diff --git a/Client/src/main/java/io/github/jwdeveloper/tiktok/TikTokLiveHttpOfflineClient.java b/Client/src/main/java/io/github/jwdeveloper/tiktok/TikTokLiveHttpOfflineClient.java index 0e64de2..404b28a 100644 --- a/Client/src/main/java/io/github/jwdeveloper/tiktok/TikTokLiveHttpOfflineClient.java +++ b/Client/src/main/java/io/github/jwdeveloper/tiktok/TikTokLiveHttpOfflineClient.java @@ -47,7 +47,7 @@ public class TikTokLiveHttpOfflineClient implements LiveHttpClient { @Override public LiveUserData.Response fetchLiveUserData(LiveUserData.Request request) { - return new LiveUserData.Response("", LiveUserData.UserStatus.Live, "offline_room_id", 0); + return new LiveUserData.Response("", LiveUserData.UserStatus.Live, "offline_room_id", 0, null); } @Override diff --git a/Client/src/main/java/io/github/jwdeveloper/tiktok/http/mappers/LiveUserDataMapper.java b/Client/src/main/java/io/github/jwdeveloper/tiktok/http/mappers/LiveUserDataMapper.java index 2c80207..b6f0de0 100644 --- a/Client/src/main/java/io/github/jwdeveloper/tiktok/http/mappers/LiveUserDataMapper.java +++ b/Client/src/main/java/io/github/jwdeveloper/tiktok/http/mappers/LiveUserDataMapper.java @@ -23,9 +23,12 @@ package io.github.jwdeveloper.tiktok.http.mappers; import com.google.gson.*; +import io.github.jwdeveloper.tiktok.data.models.Picture; +import io.github.jwdeveloper.tiktok.data.models.users.User; import io.github.jwdeveloper.tiktok.data.requests.LiveUserData; import io.github.jwdeveloper.tiktok.exceptions.TikTokLiveRequestException; +import java.util.List; import java.util.logging.Logger; public class LiveUserDataMapper @@ -40,17 +43,18 @@ public class LiveUserDataMapper throw new TikTokLiveRequestException("fetchRoomIdFromTiktokApi -> Unable to fetch roomID, contact the developer"); } if (message.equals("user_not_found")) { - return new LiveUserData.Response(json, LiveUserData.UserStatus.NotFound, "", -1); + return new LiveUserData.Response(json, LiveUserData.UserStatus.NotFound, "", -1, null); } //live -> status 2 //live paused -> 3 //not live -> status 4 var element = jsonObject.get("data"); if (element.isJsonNull()) { - return new LiveUserData.Response(json, LiveUserData.UserStatus.NotFound, "", -1); + return new LiveUserData.Response(json, LiveUserData.UserStatus.NotFound, "", -1, null); } var data = element.getAsJsonObject(); var user = data.getAsJsonObject("user"); + var stats = data.getAsJsonObject("stats"); var roomId = user.get("roomId").getAsString(); var status = user.get("status").getAsInt(); @@ -64,10 +68,19 @@ public class LiveUserDataMapper default -> LiveUserData.UserStatus.NotFound; }; - return new LiveUserData.Response(json, statusEnum, roomId, startTime); + User foundUser = new User( + Long.parseLong(user.get("id").getAsString()), + user.get("uniqueId").getAsString(), + user.get("nickname").getAsString(), + new Picture(user.get("avatarLarger").getAsString()), + stats.get("followingCount").getAsLong(), + stats.get("followerCount").getAsLong(), + List.of()); + + return new LiveUserData.Response(json, statusEnum, roomId, startTime, foundUser); } catch (JsonSyntaxException | IllegalStateException e) { logger.warning("Malformed Json: '"+json+"' - Error Message: "+e.getMessage()); - return new LiveUserData.Response(json, LiveUserData.UserStatus.NotFound, "", -1); + return new LiveUserData.Response(json, LiveUserData.UserStatus.NotFound, "", -1, null); } } } \ No newline at end of file