Skip to content

Commit

Permalink
🐛 Handle expected 404
Browse files Browse the repository at this point in the history
  • Loading branch information
ebullient committed Jun 14, 2024
1 parent 6b30836 commit d6f56d2
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -54,8 +54,9 @@ public Response getAliases(@DefaultValue("false") @QueryParam("refresh") boolean
return Response.status(Response.Status.FORBIDDEN).build();
}
if (!ctx.validAttestation(ID)) {
Log.errorf("getAliases|%s %s is an invalid attestation id", user.login(), ID);
return Response.status(Response.Status.BAD_REQUEST).build();
// Not the user's fault.. misconfiguration
Exception e = new Exception("Invalid attestation id");
ctx.logAndSendEmail("getAliases", ID + " is an nvalid attestation id", e, null);
}

Services services = user.services();
Expand Down Expand Up @@ -119,6 +120,9 @@ public Response updateAliases(Map<String, Set<String>> aliases) {
.setData(ApiResponse.Type.ALIAS, aliasMap)
.finish();
} catch (WebApplicationException e) {
if (e.getResponse().getStatus() == Response.Status.NOT_FOUND.getStatusCode()) {
return new ApiResponse(ApiResponse.Type.ALIAS, Map.of()).finish();
}
return e.getResponse();
} catch (Throwable e) {
return ctx.toResponseWithEmail("updateAliases", "Unable to update user aliases for " + session.login(), e);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -384,10 +384,9 @@ private Alias getAlias(String email, boolean resetCache) {

Alias alias = resetCache ? null : AdminDataCache.ALIASES.get(email);
if (alias == null) {
// will throw WebApplicationException if not found or error
alias = forwardEmailClient.getAlias(domain, name);
if (alias != null) {
AdminDataCache.ALIASES.put(email, alias);
}
AdminDataCache.ALIASES.put(email, alias);
}
return alias;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import java.util.Set;

import jakarta.inject.Inject;
import jakarta.ws.rs.WebApplicationException;

import org.commonhaus.automation.admin.github.AppContextService;
import org.eclipse.microprofile.rest.client.inject.RestClient;
Expand All @@ -31,29 +32,36 @@ public void testQueryDomains() {
System.out.println("Domain: " + domain.name);
// Set<Alias> aliases = forwardEmailClient.getAliases(domain.name);
// for (Alias alias : aliases) {
// System.out.println(" Alias: " + alias.name);
// System.out.println(" Alias: " + alias.name);
// }
}
}

@Test
@Disabled
public void testQueryAliases() {
// Set<Alias> aliases = forwardEmailClient.findAliasByName("commonhaus.dev", "ebullient");
// Set<Alias> aliases = forwardEmailClient.findAliasByName("commonhaus.dev",
// "ebullient");
// for (Alias alias : aliases) {
// System.out.println("Alias: " + alias);
// System.out.println("Alias: " + alias);
// }

// Map<String, Alias> aliases = ctx.getAliases(List.of("ebullient@commonhaus.dev"), false);
// Map<String, Alias> aliases =
// ctx.getAliases(List.of("ebullient@commonhaus.dev"), false);
// System.out.println("Alias: " + aliases);

// Map<String, Set<String>> updates = aliases.entrySet().stream()
// .collect(Collectors.toMap(e -> e.getKey(), e -> e.getValue().recipients));
// .collect(Collectors.toMap(e -> e.getKey(), e -> e.getValue().recipients));
// aliases = ctx.setRecipients("Erin Schnabel", updates);

Alias alias = forwardEmailClient.getAlias("commonhaus.dev", "automation");
System.out.println("Alias: " + alias);

try {
alias = forwardEmailClient.getAlias("commonhaus.dev", "apples");
} catch (WebApplicationException e) {
System.out.println("ALIAS NOT FOUND: " + e);
}
// ctx.generatePassword("automation@commonhaus.dev");

// forwardEmailClient.updateAlias("commonhaus.dev", alias.id, alias);
Expand Down

0 comments on commit d6f56d2

Please sign in to comment.