Skip to content

Commit ffdc6d3

Browse files
authored
Refactor comment counter update to eliminate dependency on GroupVersionKind (#8171)
1 parent fba10c8 commit ffdc6d3

1 file changed

Lines changed: 12 additions & 11 deletions

File tree

application/src/main/java/run/halo/app/core/reconciler/CommentReconciler.java

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,11 @@
1111
import java.time.Duration;
1212
import java.time.Instant;
1313
import java.util.Map;
14+
import java.util.Objects;
1415
import java.util.Set;
1516
import lombok.RequiredArgsConstructor;
1617
import org.apache.commons.lang3.BooleanUtils;
1718
import org.springframework.context.ApplicationEventPublisher;
18-
import org.springframework.lang.NonNull;
1919
import org.springframework.stereotype.Component;
2020
import run.halo.app.content.comment.ReplyNotificationSubscriptionHelper;
2121
import run.halo.app.content.comment.ReplyService;
@@ -26,7 +26,6 @@
2626
import run.halo.app.event.post.CommentCreatedEvent;
2727
import run.halo.app.event.post.CommentUnreadReplyCountChangedEvent;
2828
import run.halo.app.extension.ExtensionClient;
29-
import run.halo.app.extension.GroupVersionKind;
3029
import run.halo.app.extension.ListOptions;
3130
import run.halo.app.extension.MetadataUtil;
3231
import run.halo.app.extension.PageRequestImpl;
@@ -135,13 +134,19 @@ private void updateUnReplyCountIfNecessary(Comment comment) {
135134

136135
private void updateSameSubjectRefCommentCounter(Comment comment) {
137136
var commentSubjectRef = comment.getSpec().getSubjectRef();
138-
GroupVersionKind groupVersionKind = groupVersionKind(commentSubjectRef);
139-
140137
var totalCount = countTotalComments(commentSubjectRef);
141138
var approvedTotalCount = countApprovedComments(commentSubjectRef);
142-
schemeManager.fetch(groupVersionKind).ifPresent(scheme -> {
143-
String counterName = MeterUtils.nameOf(commentSubjectRef.getGroup(), scheme.plural(),
144-
commentSubjectRef.getName());
139+
var findScheme = schemeManager.schemes().stream()
140+
.filter(scheme -> {
141+
var gvk = scheme.groupVersionKind();
142+
return Objects.equals(gvk.group(), commentSubjectRef.getGroup())
143+
&& Objects.equals(gvk.kind(), commentSubjectRef.getKind());
144+
})
145+
.findFirst();
146+
findScheme.ifPresent(scheme -> {
147+
String counterName =
148+
MeterUtils.nameOf(commentSubjectRef.getGroup(), scheme.plural(),
149+
commentSubjectRef.getName());
145150
client.fetch(Counter.class, counterName).ifPresentOrElse(counter -> {
146151
counter.setTotalComment(totalCount);
147152
counter.setApprovedComment(approvedTotalCount);
@@ -185,8 +190,4 @@ private void cleanUpResources(Comment comment) {
185190
updateSameSubjectRefCommentCounter(comment);
186191
}
187192

188-
@NonNull
189-
private GroupVersionKind groupVersionKind(@NonNull Ref ref) {
190-
return new GroupVersionKind(ref.getGroup(), ref.getVersion(), ref.getKind());
191-
}
192193
}

0 commit comments

Comments
 (0)