From ea9e13e30400efebb00fef998e5ee6b26bf518ec Mon Sep 17 00:00:00 2001 From: YuCheng Hu Date: Wed, 4 Oct 2023 08:07:57 -0400 Subject: [PATCH] =?UTF-8?q?ZCH-18=20=E9=87=8D=E6=9E=84=20Topic=20=E5=AF=B9?= =?UTF-8?q?=E8=B1=A1=E7=94=A8=E4=BA=8E=E5=A4=84=E7=90=86=E8=BF=94=E5=9B=9E?= =?UTF-8?q?=E5=92=8C=E6=95=B0=E6=8D=AE=E6=8F=8F=E8=BF=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../client/service/TopicsService.java | 2 ++ .../client/test/TopicServiceTest.java | 2 ++ .../discourse/common/model/dto/Topic.java | 20 +++++++++++++++++++ 3 files changed, 24 insertions(+) diff --git a/client/src/main/java/com/ossez/discourse/client/service/TopicsService.java b/client/src/main/java/com/ossez/discourse/client/service/TopicsService.java index 0425440..7885a62 100644 --- a/client/src/main/java/com/ossez/discourse/client/service/TopicsService.java +++ b/client/src/main/java/com/ossez/discourse/client/service/TopicsService.java @@ -2,6 +2,7 @@ package com.ossez.discourse.client.service; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.PropertyNamingStrategy; import com.ossez.discourse.common.model.dto.Topic; import com.ossez.discourse.client.DiscourseClient; import okhttp3.*; @@ -42,6 +43,7 @@ public class TopicsService extends DiscourseClient { if (response.code() == HttpStatus.SC_OK) { ObjectMapper objectMapper = new ObjectMapper(); objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + objectMapper.setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE); discourseTopic = Optional.of(objectMapper.readValue(responseStr, Topic.class)); } diff --git a/client/src/test/java/com/ossez/discourse/client/test/TopicServiceTest.java b/client/src/test/java/com/ossez/discourse/client/test/TopicServiceTest.java index dc554c8..5fb573f 100644 --- a/client/src/test/java/com/ossez/discourse/client/test/TopicServiceTest.java +++ b/client/src/test/java/com/ossez/discourse/client/test/TopicServiceTest.java @@ -36,6 +36,8 @@ public class TopicServiceTest extends TestBase { Optional topic = topicsService.getTopic(DISCOURSE_TOPIC_ID); assertThat(topic).isNotEmpty(); + assertThat(topic.get().getPostStream().getPosts().size()).isGreaterThan(1); + assertThat(topic.get().getPostStream().getPosts().get(0).getId()).isEqualTo(DISCOURSE_POST_ID); assertThat(topic.get().getId()).isEqualTo(DISCOURSE_TOPIC_ID); assertThat(topic.get().getTitle()).isNotEmpty(); log.debug("{}", topic.get().getTitle()); diff --git a/common/src/main/java/com/ossez/discourse/common/model/dto/Topic.java b/common/src/main/java/com/ossez/discourse/common/model/dto/Topic.java index 67db215..f4bf6cb 100644 --- a/common/src/main/java/com/ossez/discourse/common/model/dto/Topic.java +++ b/common/src/main/java/com/ossez/discourse/common/model/dto/Topic.java @@ -2,8 +2,12 @@ package com.ossez.discourse.common.model.dto; import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; + public class Topic { + private PostStream postStream; + private List> timelineLookup; @JsonProperty(value = "id", required = true) private Long id; @JsonProperty(required = true) @@ -41,6 +45,22 @@ public class Topic { private String deletedBy; private Boolean hasDeleted; + public PostStream getPostStream() { + return postStream; + } + + public void setPostStream(PostStream postStream) { + this.postStream = postStream; + } + + public List> getTimelineLookup() { + return timelineLookup; + } + + public void setTimelineLookup(List> timelineLookup) { + this.timelineLookup = timelineLookup; + } + public Long getId() { return id; }