From 8a727c6e80410aa61ecac4cf0a84ab4286b5365b Mon Sep 17 00:00:00 2001 From: spiral Date: Sat, 3 Dec 2022 12:00:41 +0000 Subject: [PATCH] feat(web-proxy): throw error when trying to access apiv1 on apiv2 --- services/web-proxy/main.go | 17 +++++++++++++++++ services/web-proxy/util.go | 9 +++++++++ 2 files changed, 26 insertions(+) diff --git a/services/web-proxy/main.go b/services/web-proxy/main.go index e305a2ec..6d7c72ad 100644 --- a/services/web-proxy/main.go +++ b/services/web-proxy/main.go @@ -74,6 +74,23 @@ func (p ProxyHandler) ServeHTTP(rw http.ResponseWriter, r *http.Request) { return } + if r.URL.Path == "/" { + http.Redirect(rw, r, "https://pluralkit.me", http.StatusFound) + return + } + + if strings.HasPrefix(r.URL.Path, "/v1") { + rw.Header().Set("content-type", "application/json") + rw.WriteHeader(410) + rw.Write([]byte(`{"message":"Unsupported API version","code":0}`)) + } + + if is_trying_to_use_v1_path_on_v2(r.URL.Path) { + rw.WriteHeader(400) + rw.Write([]byte(`{"message":"Invalid path for API version","code":0}`)) + return + } + if is_api_ratelimited(rw, r) { return } diff --git a/services/web-proxy/util.go b/services/web-proxy/util.go index be001f2e..552cef49 100644 --- a/services/web-proxy/util.go +++ b/services/web-proxy/util.go @@ -63,3 +63,12 @@ func requireEnv(key string) string { return val } } + +func is_trying_to_use_v1_path_on_v2(path string) bool { + return strings.HasPrefix(path, "/v2/s/") || + strings.HasPrefix(path, "/v2/m/") || + strings.HasPrefix(path, "/v2/a/") || + strings.HasPrefix(path, "/v2/msg/") || + path == "/v2/s" || + path == "/v2/m" +}