From 979b82e90e4ce14bf833951890079644ffce687a Mon Sep 17 00:00:00 2001 From: Colin McDonald Date: Fri, 6 May 2016 09:30:47 -0400 Subject: [PATCH] Cleanup --- apiv3.properties | 3 ++- src/main/java/net/frozenorb/apiv3/APIv3.java | 4 +++- .../net/frozenorb/apiv3/actors/ActorType.java | 2 +- .../apiv3/actors/BungeeCordActor.java | 19 +++++++++++++++++++ .../apiv3/filters/ActorAttributeFilter.java | 7 +++++++ ...OSTServerMetrics.java => POSTMetrics.java} | 12 ++---------- 6 files changed, 34 insertions(+), 13 deletions(-) create mode 100644 src/main/java/net/frozenorb/apiv3/actors/BungeeCordActor.java rename src/main/java/net/frozenorb/apiv3/routes/{servers/POSTServerMetrics.java => POSTMetrics.java} (58%) diff --git a/apiv3.properties b/apiv3.properties index f2f8f92..6a17242 100644 --- a/apiv3.properties +++ b/apiv3.properties @@ -18,4 +18,5 @@ librato.email=cmcdonald.main@gmail.com librato.apiKey=a818c3eca8a59d6d9cf76dc9f0d237c6aa97f257c482ce3363cf55a5431bc153 bugsnag.apiKey=0e47fba8b825416b7cbc839066184509 auth.permittedUserRanks=developer,owner -auth.websiteApiKey=RVbp4hY6sCFVaf \ No newline at end of file +auth.websiteApiKey=RVbp4hY6sCFVaf +auth.bungeeCordApiKey=6d9cf76dc9f0d23 \ No newline at end of file diff --git a/src/main/java/net/frozenorb/apiv3/APIv3.java b/src/main/java/net/frozenorb/apiv3/APIv3.java index bb7d5ac..bd544ca 100644 --- a/src/main/java/net/frozenorb/apiv3/APIv3.java +++ b/src/main/java/net/frozenorb/apiv3/APIv3.java @@ -13,6 +13,8 @@ import net.frozenorb.apiv3.filters.*; import net.frozenorb.apiv3.routes.GETDump; import net.frozenorb.apiv3.routes.GETWhoAmI; import net.frozenorb.apiv3.routes.NotFound; +import net.frozenorb.apiv3.routes.POSTMetrics; +import net.frozenorb.apiv3.routes.servers.POSTServerHeartbeat; import net.frozenorb.apiv3.routes.announcements.GETAnnouncements; import net.frozenorb.apiv3.routes.auditLog.GETAuditLog; import net.frozenorb.apiv3.routes.chatFilterList.GETChatFilterList; @@ -153,6 +155,7 @@ public final class APIv3 { // TODO: The commented out routes + post("/metrics", new POSTMetrics(), gson::toJson); get("/announcements", new GETAnnouncements(), gson::toJson); get("/auditLog", new GETAuditLog(), gson::toJson); get("/chatFilterList", new GETChatFilterList(), gson::toJson); @@ -188,7 +191,6 @@ public final class APIv3 { get("/server/:id", new GETServer(), gson::toJson); get("/servers", new GETServers(), gson::toJson); post("/server/heartbeat", new POSTServerHeartbeat(), gson::toJson); - post("/server/metrics", new POSTServerMetrics(), gson::toJson); post("/server", new POSTServer(), gson::toJson); //put("/server/:id", new PUTServer(), gson::toJson); delete("/server/:id", new DELETEServer(), gson::toJson); diff --git a/src/main/java/net/frozenorb/apiv3/actors/ActorType.java b/src/main/java/net/frozenorb/apiv3/actors/ActorType.java index 6974e4f..0307167 100644 --- a/src/main/java/net/frozenorb/apiv3/actors/ActorType.java +++ b/src/main/java/net/frozenorb/apiv3/actors/ActorType.java @@ -2,6 +2,6 @@ package net.frozenorb.apiv3.actors; public enum ActorType { - WEBSITE, SERVER, USER, UNKNOWN + WEBSITE, BUNGEECORD, SERVER, USER, UNKNOWN } \ No newline at end of file diff --git a/src/main/java/net/frozenorb/apiv3/actors/BungeeCordActor.java b/src/main/java/net/frozenorb/apiv3/actors/BungeeCordActor.java new file mode 100644 index 0000000..fd77cfa --- /dev/null +++ b/src/main/java/net/frozenorb/apiv3/actors/BungeeCordActor.java @@ -0,0 +1,19 @@ +package net.frozenorb.apiv3.actors; + +import net.frozenorb.apiv3.models.Server; + +public final class BungeeCordActor implements Actor { + + public boolean isAuthorized() { + return true; + } + + public String getName() { + return "BungeeCord"; + } + + public ActorType getType() { + return ActorType.BUNGEECORD; + } + +} \ No newline at end of file diff --git a/src/main/java/net/frozenorb/apiv3/filters/ActorAttributeFilter.java b/src/main/java/net/frozenorb/apiv3/filters/ActorAttributeFilter.java index 48d1dbd..5609e0c 100644 --- a/src/main/java/net/frozenorb/apiv3/filters/ActorAttributeFilter.java +++ b/src/main/java/net/frozenorb/apiv3/filters/ActorAttributeFilter.java @@ -72,6 +72,13 @@ public final class ActorAttributeFilter implements Filter { if (givenKey.equals(properKey)) { return new ServerActor(server); } + } else if (type.equals("BUngeeCord") && split.length == 2) { + String givenKey = split[1]; + String properKey = APIv3.getConfig().getProperty("auth.bungeeCordApiKey"); + + if (givenKey.equals(properKey)) { + return new BungeeCordActor(); + } } } diff --git a/src/main/java/net/frozenorb/apiv3/routes/servers/POSTServerMetrics.java b/src/main/java/net/frozenorb/apiv3/routes/POSTMetrics.java similarity index 58% rename from src/main/java/net/frozenorb/apiv3/routes/servers/POSTServerMetrics.java rename to src/main/java/net/frozenorb/apiv3/routes/POSTMetrics.java index 048aa21..d7c9bb3 100644 --- a/src/main/java/net/frozenorb/apiv3/routes/servers/POSTServerMetrics.java +++ b/src/main/java/net/frozenorb/apiv3/routes/POSTMetrics.java @@ -1,4 +1,4 @@ -package net.frozenorb.apiv3.routes.servers; +package net.frozenorb.apiv3.routes; import com.google.common.collect.ImmutableMap; import net.frozenorb.apiv3.actors.Actor; @@ -9,17 +9,9 @@ import spark.Request; import spark.Response; import spark.Route; -public final class POSTServerMetrics implements Route { +public final class POSTMetrics implements Route { public Object handle(Request req, Response res) { - Actor actor = req.attribute("actor"); - - if (actor.getType() != ActorType.SERVER) { - return ErrorUtils.serverOnly(); - } - - Server actorServer = Server.byId(actor.getName()); - //LibratoBatch batch = new LibratoBatch(); return ImmutableMap.of();