From 5b8699cf9d4922a8e4677ad4043ea1b245f3094c Mon Sep 17 00:00:00 2001 From: jeffcheasey88 Date: Tue, 16 Apr 2024 11:56:29 +0200 Subject: [PATCH] Add WebHook for refreshing leaderboard --- src/dev/peerat/backend/Main.java | 3 +++ .../routes/admins/WebHookLeaderboard.java | 27 +++++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 src/dev/peerat/backend/routes/admins/WebHookLeaderboard.java diff --git a/src/dev/peerat/backend/Main.java b/src/dev/peerat/backend/Main.java index 2ab7606..17a1484 100644 --- a/src/dev/peerat/backend/Main.java +++ b/src/dev/peerat/backend/Main.java @@ -25,6 +25,7 @@ import dev.peerat.backend.routes.Result; import dev.peerat.backend.routes.Swagger; import dev.peerat.backend.routes.admins.DynamicLogs; import dev.peerat.backend.routes.admins.ExceptionLogs; +import dev.peerat.backend.routes.admins.WebHookLeaderboard; import dev.peerat.backend.routes.admins.chapter.AddChapter; import dev.peerat.backend.routes.admins.chapter.DeleteChapter; import dev.peerat.backend.routes.admins.chapter.EditChapter; @@ -209,6 +210,8 @@ public class Main{ register(new DeleteTag(repo)). register(new EditTag(repo)). register(new GetTags(repo)). + + register(new WebHookLeaderboard(leaderboard)). register(new ChapterElement(repo)). register(new ChapterList(repo)). diff --git a/src/dev/peerat/backend/routes/admins/WebHookLeaderboard.java b/src/dev/peerat/backend/routes/admins/WebHookLeaderboard.java new file mode 100644 index 0000000..aa7e7e1 --- /dev/null +++ b/src/dev/peerat/backend/routes/admins/WebHookLeaderboard.java @@ -0,0 +1,27 @@ +package dev.peerat.backend.routes.admins; + +import java.util.regex.Matcher; + +import dev.peerat.backend.model.Completion; +import dev.peerat.framework.Context; +import dev.peerat.framework.HttpReader; +import dev.peerat.framework.HttpWriter; +import dev.peerat.framework.Locker; +import dev.peerat.framework.Response; +import dev.peerat.framework.Route; + +public class WebHookLeaderboard implements Response{ + + private Locker locker; + + public WebHookLeaderboard(Locker locker){ + this.locker = locker; + } + + @Route(path = "^/admin/webhook/leaderboard/$", needLogin = true) + public void exec(Matcher matcher, Context context, HttpReader reader, HttpWriter writer) throws Exception{ + locker.setValue(new Completion(0, 0)); + context.response(200); + } + +}