Skip to content

Commit 19d6c2e

Browse files
committed
further reduce NPath complexity of Members.list method
1 parent 1ad9419 commit 19d6c2e

1 file changed

Lines changed: 14 additions & 14 deletions

File tree

  • src/main/java/pro/cloudnode/smp/smpcore/api/routes

src/main/java/pro/cloudnode/smp/smpcore/api/routes/Members.java

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
import org.jetbrains.annotations.Nullable;
99
import pro.cloudnode.smp.smpcore.CachedProfile;
1010
import pro.cloudnode.smp.smpcore.Member;
11-
import pro.cloudnode.smp.smpcore.Nation;
1211
import pro.cloudnode.smp.smpcore.SMPCore;
1312
import pro.cloudnode.smp.smpcore.api.REST;
1413

@@ -74,9 +73,18 @@ private static Predicate<Member> resolveFilter(final @Nullable String filter) {
7473
};
7574
}
7675

77-
public void list(final @NotNull Context ctx) {
78-
final @Nullable String include = ctx.queryParam("include");
76+
private static void applyInclude(@NotNull JsonObject json, @NotNull Member member, @Nullable String include) {
77+
if (include == null)
78+
return;
7979

80+
if ("nation".equals(include)) {
81+
member.nation()
82+
.map(Nations::map)
83+
.ifPresentOrElse(nation -> json.add("nation", nation), () -> json.add("nation", null));
84+
}
85+
}
86+
87+
public void list(final @NotNull Context ctx) {
8088
final var limit = parseInt(ctx.queryParam("limit"));
8189
final var page = parseInt(ctx.queryParam("page"), 1);
8290

@@ -86,22 +94,14 @@ public void list(final @NotNull Context ctx) {
8694

8795
final var filterPredicate = resolveFilter(ctx.queryParam("filter"));
8896

97+
final @Nullable String include = ctx.queryParam("include");
98+
8999
for (final @NotNull Member member : members) {
90100
if (!filterPredicate.test(member))
91101
continue;
92102

93103
final @NotNull JsonObject m = map(member);
94-
if (include != null) {
95-
switch (include) {
96-
case "nation" -> {
97-
final @NotNull Optional<@NotNull Nation> optionalNation = member.nation();
98-
if (optionalNation.isEmpty())
99-
m.add("nation", null);
100-
else
101-
m.add("nation", Nations.map(optionalNation.get()));
102-
}
103-
}
104-
}
104+
applyInclude(m, member, include);
105105
arr.add(m);
106106
}
107107
ctx.json(arr);

0 commit comments

Comments
 (0)