Skip to content

Commit

Permalink
releaseb fixing the character media
Browse files Browse the repository at this point in the history
  • Loading branch information
Sammers21 committed Apr 11, 2024
1 parent 8170f12 commit fdc8da5
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 33 deletions.
2 changes: 1 addition & 1 deletion src/io/github/sammers/pla/blizzard/BlizzardAPI.java
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ public Maybe<WowAPICharacter> character(String region, String realm, String name
).toList()
).toList();
Maybe<JsonObject> achievementsRx = maybeResponse(realNamespace, absoluteURI + "/achievements");
Maybe<JsonObject> mediaRx = maybeResponse(realNamespace, absoluteURI + "/character-media");
Maybe<JsonObject> mediaRx = maybeResponse(realNamespace, absoluteURI + "/character-media").onErrorReturnItem(new JsonObject());
Maybe<JsonObject> petsRx = maybeResponse(realNamespace, absoluteURI + "/collections/pets");
Maybe<JsonObject> specsRx = maybeResponse(realNamespace, absoluteURI + "/specializations");
return Single.zip(
Expand Down
66 changes: 34 additions & 32 deletions src/io/github/sammers/pla/blizzard/WowAPICharacter.java
Original file line number Diff line number Diff line change
Expand Up @@ -165,17 +165,17 @@ public record WowAPICharacter(long id,
}

public static WowAPICharacter parse(
Optional<WowAPICharacter> previous,
Refs refs,
Optional<Cutoffs> cutoffs,
JsonObject entries,
JsonObject pvpSummary,
List<JsonObject> brackets,
JsonObject achievements,
JsonObject characterMedia,
JsonObject specs,
JsonObject pets,
String region) {
Optional<WowAPICharacter> previous,
Refs refs,
Optional<Cutoffs> cutoffs,
JsonObject entries,
JsonObject pvpSummary,
List<JsonObject> brackets,
JsonObject achievements,
JsonObject characterMedia,
JsonObject specs,
JsonObject pets,
String region) {
String activeSpec = Optional.of(entries.getJsonObject("active_spec")).map(obj -> obj.getString("name")).orElse("");
String talents = specs.getJsonArray("specializations").stream()
.map(s -> (JsonObject) s)
Expand Down Expand Up @@ -218,7 +218,9 @@ public static WowAPICharacter parse(
}
return PvpBracket.parse(wowApiBracket, prevBracket, rank, Optional.of(cutoffByBracketType).orElse(-1L), thisSsnData);
}).toList();
CharacterMedia media = CharacterMedia.parse(characterMedia);
CharacterMedia media = characterMedia.getMap().size() == 0 ?
previous.map(WowAPICharacter::media).orElse(CharacterMedia.parse(characterMedia))
: CharacterMedia.parse(characterMedia);
Long lastUpdatedUTCms = Instant.now().toEpochMilli();
Achievements parsedAchievements = Achievements.parse(achievements);
return new WowAPICharacter(
Expand Down Expand Up @@ -291,8 +293,8 @@ public WowAPICharacter updatePvpBracketData(CharAndDiff diff, BracketType bracke
PvpBracket res;
if (BracketType.fromType(pvpBracket.bracketType()).equals(bracket) &&
(bracket.equals(BracketType.TWO_V_TWO)
|| bracket.equals(BracketType.THREE_V_THREE)
|| bracket.equals(BracketType.RBG))) {
|| bracket.equals(BracketType.THREE_V_THREE)
|| bracket.equals(BracketType.RBG))) {
log.debug("Updating bracket " + pvpBracket.bracketType() + " with diff " + diff);
res = new PvpBracket(
pvpBracket.bracketType(),
Expand Down Expand Up @@ -354,24 +356,24 @@ public int hashCode() {
@Override
public JsonObject toJson() {
return new JsonObject()
.put("id", id)
.put("hidden", hidden)
.put("name", name)
.put("realm", realm)
.put("gender", gender)
.put("fraction", fraction)
.put("race", race)
.put("activeSpec", activeSpec)
.put("level", level)
.put("class", clazz)
.put("itemLevel", itemLevel)
.put("region", region)
.put("lastUpdatedUTCms", lastUpdatedUTCms)
.put("brackets", new JsonArray(brackets.stream().map(PvpBracket::toJson).toList()))
.put("achievements", achievements.toJson())
.put("petHash", petHash)
.put("media", media.toJson())
.put("talents", talents);
.put("id", id)
.put("hidden", hidden)
.put("name", name)
.put("realm", realm)
.put("gender", gender)
.put("fraction", fraction)
.put("race", race)
.put("activeSpec", activeSpec)
.put("level", level)
.put("class", clazz)
.put("itemLevel", itemLevel)
.put("region", region)
.put("lastUpdatedUTCms", lastUpdatedUTCms)
.put("brackets", new JsonArray(brackets.stream().map(PvpBracket::toJson).toList()))
.put("achievements", achievements.toJson())
.put("petHash", petHash)
.put("media", media.toJson())
.put("talents", talents);
}

}

0 comments on commit fdc8da5

Please sign in to comment.