Skip to content

Commit

Permalink
handle jackson exception on no content
Browse files Browse the repository at this point in the history
  • Loading branch information
rfresh2 committed Oct 28, 2024
1 parent 767eadc commit 0ee82b1
Show file tree
Hide file tree
Showing 10 changed files with 50 additions and 10 deletions.
6 changes: 5 additions & 1 deletion src/main/java/vc/commands/ChatSearchCommand.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package vc.commands;

import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.exc.MismatchedInputException;
import discord4j.core.event.domain.interaction.ButtonInteractionEvent;
import discord4j.core.event.domain.interaction.ChatInputInteractionEvent;
import discord4j.core.event.domain.interaction.DeferrableInteractionEvent;
Expand Down Expand Up @@ -72,7 +73,10 @@ public Mono<Message> resolve(DeferrableInteractionEvent event, String word, int
try {
response = chatsApi.chatSearch(word, startDate, endDate, 25, page);
} catch (final Exception e) {
if (!(e instanceof ApiException apiException) || apiException.getCode() != 204) {
if (e instanceof ApiException apiException
&& (apiException.getCause() instanceof MismatchedInputException || apiException.getCode() == 204)) {
// fall through
} else {
LOGGER.error("Error searching for word: {}", word, e);
}
}
Expand Down
6 changes: 5 additions & 1 deletion src/main/java/vc/commands/ChatsCommand.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package vc.commands;

import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.exc.MismatchedInputException;
import discord4j.core.event.domain.interaction.ButtonInteractionEvent;
import discord4j.core.event.domain.interaction.ChatInputInteractionEvent;
import discord4j.core.event.domain.interaction.DeferrableInteractionEvent;
Expand Down Expand Up @@ -49,7 +50,10 @@ private Mono<Message> resolveChats(final DeferrableInteractionEvent event, final
try {
chatsResponse = chatsApi.chats(identity.uuid(), null, startDate, endDate, 25, page);
} catch (final Exception e) {
if (!(e instanceof ApiException apiException) || apiException.getCode() != 204) {
if (e instanceof ApiException apiException
&& (apiException.getCause() instanceof MismatchedInputException || apiException.getCode() == 204)) {
// fall through
} else {
LOGGER.error("Error processing chats response", e);
}
}
Expand Down
6 changes: 5 additions & 1 deletion src/main/java/vc/commands/ConnectionsCommand.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package vc.commands;

import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.exc.MismatchedInputException;
import discord4j.core.event.domain.interaction.ButtonInteractionEvent;
import discord4j.core.event.domain.interaction.ChatInputInteractionEvent;
import discord4j.core.event.domain.interaction.DeferrableInteractionEvent;
Expand Down Expand Up @@ -49,7 +50,10 @@ private Mono<Message> resolveConnections(final DeferrableInteractionEvent event,
try {
connectionsResponse = connectionsApi.connections(identity.uuid(), null, startDate, endDate, 25, page);
} catch (final Exception e) {
if (!(e instanceof ApiException apiException) || apiException.getCode() != 204) {
if (e instanceof ApiException apiException
&& (apiException.getCause() instanceof MismatchedInputException || apiException.getCode() == 204)) {
// fall through
} else {
LOGGER.error("Error processing connections response", e);
}
}
Expand Down
6 changes: 5 additions & 1 deletion src/main/java/vc/commands/DataCommand.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package vc.commands;

import com.fasterxml.jackson.databind.exc.MismatchedInputException;
import discord4j.core.event.domain.interaction.ChatInputInteractionEvent;
import discord4j.core.object.entity.Message;
import discord4j.core.spec.EmbedCreateSpec;
Expand Down Expand Up @@ -42,7 +43,10 @@ public Mono<Message> resolvePlayerDataDump(ChatInputInteractionEvent event, Prof
try {
playerDataDump = vcDataDumpApi.getPlayerDataDump(playerIdentity.uuid(), null);
} catch (final Exception e){
if (!(e instanceof ApiException apiException) || apiException.getCode() != 204) {
if (e instanceof ApiException apiException
&& (apiException.getCause() instanceof MismatchedInputException || apiException.getCode() == 204)) {
// fall through
} else {
LOGGER.error("Failed to get player data dump", e);
}
}
Expand Down
6 changes: 5 additions & 1 deletion src/main/java/vc/commands/DeathsCommand.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package vc.commands;

import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.exc.MismatchedInputException;
import discord4j.core.event.domain.interaction.ButtonInteractionEvent;
import discord4j.core.event.domain.interaction.ChatInputInteractionEvent;
import discord4j.core.event.domain.interaction.DeferrableInteractionEvent;
Expand Down Expand Up @@ -49,7 +50,10 @@ private Mono<Message> resolveDeaths(final DeferrableInteractionEvent event, fina
try {
deathsResponse = deathsApi.deaths(identity.uuid(), null, startDate, endDate, 25, page);
} catch (final Exception e) {
if (!(e instanceof ApiException apiException) || apiException.getCode() != 204) {
if (e instanceof ApiException apiException
&& (apiException.getCause() instanceof MismatchedInputException || apiException.getCode() == 204)) {
// fall through
} else {
LOGGER.error("Failed to get deaths", e);
}
}
Expand Down
6 changes: 5 additions & 1 deletion src/main/java/vc/commands/KillsCommand.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package vc.commands;

import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.exc.MismatchedInputException;
import discord4j.core.event.domain.interaction.ButtonInteractionEvent;
import discord4j.core.event.domain.interaction.ChatInputInteractionEvent;
import discord4j.core.event.domain.interaction.DeferrableInteractionEvent;
Expand Down Expand Up @@ -49,7 +50,10 @@ private Mono<Message> resolveKills(final DeferrableInteractionEvent event, final
try {
killsResponse = deathsApi.kills(identity.uuid(), null, startDate, endDate, 25, page);
} catch (final Exception e) {
if (!(e instanceof ApiException apiException) || apiException.getCode() != 204) {
if (e instanceof ApiException apiException
&& (apiException.getCause() instanceof MismatchedInputException || apiException.getCode() == 204)) {
// fall through
} else {
LOGGER.error("Error resolving kills", e);
}
}
Expand Down
6 changes: 5 additions & 1 deletion src/main/java/vc/commands/PlayerStatsCommand.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package vc.commands;

import com.fasterxml.jackson.databind.exc.MismatchedInputException;
import discord4j.core.event.domain.interaction.ChatInputInteractionEvent;
import discord4j.core.object.entity.Message;
import discord4j.core.spec.EmbedCreateSpec;
Expand Down Expand Up @@ -47,7 +48,10 @@ public Mono<Message> handle(final ChatInputInteractionEvent event) {
try {
playerStats = statsApi.playerStats(playerIdentityOptional.get().uuid(), null);
} catch (final Exception e) {
if (!(e instanceof ApiException apiException) || apiException.getCode() != 204) {
if (e instanceof ApiException apiException
&& (apiException.getCause() instanceof MismatchedInputException || apiException.getCode() == 204)) {
// fall through
} else {
LOGGER.error("Failed to get stats for player: {}", playerIdentityOptional.get().uuid(), e);
}
}
Expand Down
6 changes: 5 additions & 1 deletion src/main/java/vc/commands/PlaytimeCommand.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package vc.commands;

import com.fasterxml.jackson.databind.exc.MismatchedInputException;
import discord4j.core.event.domain.interaction.ChatInputInteractionEvent;
import discord4j.core.object.entity.Message;
import discord4j.core.spec.EmbedCreateSpec;
Expand Down Expand Up @@ -44,7 +45,10 @@ private Mono<Message> resolvePlaytime(ChatInputInteractionEvent event, final Pro
try {
playtime = playtimeApi.playtime(profileUUID, null);
} catch (final Exception e) {
if (!(e instanceof ApiException apiException) || apiException.getCode() != 204) {
if (e instanceof ApiException apiException
&& (apiException.getCause() instanceof MismatchedInputException || apiException.getCode() == 204)) {
// fall through
} else {
LOGGER.error("Failed to get playtime for player: {}", profileUUID, e);
}
}
Expand Down
6 changes: 5 additions & 1 deletion src/main/java/vc/commands/SeenCommand.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package vc.commands;

import com.fasterxml.jackson.databind.exc.MismatchedInputException;
import discord4j.core.event.domain.interaction.ChatInputInteractionEvent;
import discord4j.core.object.entity.Message;
import discord4j.core.spec.EmbedCreateSpec;
Expand Down Expand Up @@ -47,7 +48,10 @@ private Mono<Message> resolveSeen(final ChatInputInteractionEvent event, final P
try {
seenResponse = seenApi.seen(uuid, null);
} catch (final Exception e) {
if (!(e instanceof ApiException apiException) || apiException.getCode() != 204) {
if (e instanceof ApiException apiException
&& (apiException.getCause() instanceof MismatchedInputException || apiException.getCode() == 204)) {
// fall through
} else {
LOGGER.error("Failed to get seen for player: {}", uuid, e);
}
}
Expand Down
6 changes: 5 additions & 1 deletion src/main/java/vc/commands/WordCountCommand.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package vc.commands;

import com.fasterxml.jackson.databind.exc.MismatchedInputException;
import discord4j.core.event.domain.interaction.ChatInputInteractionEvent;
import discord4j.core.object.entity.Message;
import discord4j.core.spec.EmbedCreateSpec;
Expand Down Expand Up @@ -41,7 +42,10 @@ public Mono<Message> handle(final ChatInputInteractionEvent event) {
try {
count = chatsApi.wordCount(word).getCount();
} catch (final Exception e) {
if (!(e instanceof ApiException apiException) || apiException.getCode() != 204) {
if (e instanceof ApiException apiException
&& (apiException.getCause() instanceof MismatchedInputException || apiException.getCode() == 204)) {
// fall through
} else {
LOGGER.error("Error getting word count: {}", word, e);
}
}
Expand Down

0 comments on commit 0ee82b1

Please sign in to comment.