From 5134044530a9103c2b9f377569e961f606e5f1ee Mon Sep 17 00:00:00 2001 From: Viktor Lofgren Date: Sat, 13 Jan 2024 18:29:30 +0100 Subject: [PATCH] (assistant) Make assistant client more robust to the service going down This is especially important for the non-essential functions, like website similarities... --- .../nu/marginalia/assistant/client/AssistantClient.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/code/api/assistant-api/src/main/java/nu/marginalia/assistant/client/AssistantClient.java b/code/api/assistant-api/src/main/java/nu/marginalia/assistant/client/AssistantClient.java index aa263599..2e6b209d 100644 --- a/code/api/assistant-api/src/main/java/nu/marginalia/assistant/client/AssistantClient.java +++ b/code/api/assistant-api/src/main/java/nu/marginalia/assistant/client/AssistantClient.java @@ -65,7 +65,8 @@ public class AssistantClient extends AbstractDynamicClient { public Observable> similarDomains(Context ctx, int domainId, int count) { try { - return super.get(ctx, 0, STR."/domain/\{domainId}/similar?count=\{count}", new TypeToken>() {}); + return super.get(ctx, 0, STR."/domain/\{domainId}/similar?count=\{count}", new TypeToken>() {}) + .onErrorResumeWith(Observable.just(new ArrayList<>())); } catch (RouteNotConfiguredException ex) { return Observable.empty(); @@ -74,7 +75,8 @@ public class AssistantClient extends AbstractDynamicClient { public Observable> linkedDomains(Context ctx, int domainId, int count) { try { - return super.get(ctx, 0, STR."/domain/\{domainId}/linking?count=\{count}", new TypeToken>() {}); + return super.get(ctx, 0, STR."/domain/\{domainId}/linking?count=\{count}", new TypeToken>() {}) + .onErrorResumeWith(Observable.just(new ArrayList<>())); } catch (RouteNotConfiguredException ex) { return Observable.empty(); @@ -83,7 +85,8 @@ public class AssistantClient extends AbstractDynamicClient { public Observable domainInformation(Context ctx, int domainId) { try { - return super.get(ctx, 0, STR."/domain/\{domainId}/info", DomainInformation.class); + return super.get(ctx, 0, STR."/domain/\{domainId}/info", DomainInformation.class) + .onErrorResumeWith(Observable.just(new DomainInformation())); } catch (RouteNotConfiguredException ex) { return Observable.empty();