From 924973fd0f20bfafcb8752f4f7b1a314bbaabef1 Mon Sep 17 00:00:00 2001 From: Jonathan Cobb Date: Sat, 29 Aug 2020 09:47:50 -0400 Subject: [PATCH] add site context to AppMatchersResource --- .../java/bubble/dao/app/AppMatcherDAO.java | 9 ++++++ .../resources/app/AppMatchersResource.java | 29 +++++++++++++++---- .../resources/app/AppSitesResource.java | 8 +++++ 3 files changed, 40 insertions(+), 6 deletions(-) diff --git a/bubble-server/src/main/java/bubble/dao/app/AppMatcherDAO.java b/bubble-server/src/main/java/bubble/dao/app/AppMatcherDAO.java index 10da65cf..164c5c79 100644 --- a/bubble-server/src/main/java/bubble/dao/app/AppMatcherDAO.java +++ b/bubble-server/src/main/java/bubble/dao/app/AppMatcherDAO.java @@ -51,6 +51,15 @@ public class AppMatcherDAO extends AppTemplateEntityDAO { return findByFields("account", account, "enabled", true, "connCheck", true); } + public List findByAccountAndAppAndSite(String accountUuid, String appUuid, String siteUuid) { + return findByFields("account", accountUuid, "app", appUuid, "site", siteUuid); + } + + public AppMatcher findByAccountAndAppAndSiteAndId(String accountUuid, String appUuid, String siteUuid, String id) { + final AppMatcher found = findByUniqueFields("account", accountUuid, "app", appUuid, "site", siteUuid, "name", id); + return found != null ? found : findByUniqueFields("account", accountUuid, "app", appUuid, "site", siteUuid, "uuid", id); + } + @Override public Object preCreate(AppMatcher matcher) { if (matcher.getConnCheck() == null) matcher.setConnCheck(false); if (matcher.getRequestCheck() == null) matcher.setRequestCheck(false); diff --git a/bubble-server/src/main/java/bubble/resources/app/AppMatchersResource.java b/bubble-server/src/main/java/bubble/resources/app/AppMatchersResource.java index 2091a5c5..5a4756c6 100644 --- a/bubble-server/src/main/java/bubble/resources/app/AppMatchersResource.java +++ b/bubble-server/src/main/java/bubble/resources/app/AppMatchersResource.java @@ -23,6 +23,7 @@ import javax.ws.rs.Produces; import java.util.List; import static org.cobbzilla.util.http.HttpContentTypes.APPLICATION_JSON; +import static org.cobbzilla.wizard.resources.ResourceUtil.invalidEx; import static org.cobbzilla.wizard.resources.ResourceUtil.notFoundEx; @Consumes(APPLICATION_JSON) @@ -33,19 +34,28 @@ public class AppMatchersResource extends AccountOwnedResource list(ContainerRequest ctx) { - return getDao().findByAccountAndApp(getAccountUuid(ctx), app.getUuid()); + return site == null + ? getDao().findByAccountAndApp(getAccountUuid(ctx), app.getUuid()) + : getDao().findByAccountAndAppAndSite(getAccountUuid(ctx), app.getUuid(), site.getUuid()); } @Override protected AppMatcher find(ContainerRequest ctx, String id) { - return getDao().findByAccountAndAppAndId(getAccountUuid(ctx), app.getUuid(), id); + return site == null + ? getDao().findByAccountAndAppAndId(getAccountUuid(ctx), app.getUuid(), id) + : getDao().findByAccountAndAppAndSiteAndId(getAccountUuid(ctx), app.getUuid(), site.getUuid(), id); } @Override protected AppMatcher setReferences(ContainerRequest ctx, Account caller, AppMatcher matcher) { @@ -53,9 +63,16 @@ public class AppMatchersResource extends AccountOwnedResource