aboutsummaryrefslogtreecommitdiff
path: root/backend/api/rate.go
diff options
context:
space:
mode:
authorArda Serdar Pektezol <1669855+pektezol@users.noreply.github.com>2024-10-31 22:37:31 +0300
committerArda Serdar Pektezol <1669855+pektezol@users.noreply.github.com>2024-10-31 22:37:31 +0300
commitd7da8f133146de4fba1db13bfbc63242c917f817 (patch)
tree319e5216b05e279149e26c3b5cb50e6c88773e27 /backend/api/rate.go
parentbackend: better auth check, audit logging (diff)
downloadlphub-d7da8f133146de4fba1db13bfbc63242c917f817.tar.gz
lphub-d7da8f133146de4fba1db13bfbc63242c917f817.tar.bz2
lphub-d7da8f133146de4fba1db13bfbc63242c917f817.zip
backend: add rate limiting
Diffstat (limited to 'backend/api/rate.go')
-rw-r--r--backend/api/rate.go20
1 files changed, 20 insertions, 0 deletions
diff --git a/backend/api/rate.go b/backend/api/rate.go
new file mode 100644
index 0000000..1e262af
--- /dev/null
+++ b/backend/api/rate.go
@@ -0,0 +1,20 @@
1package api
2
3import (
4 "net/http"
5
6 "golang.org/x/time/rate"
7
8 "github.com/gin-gonic/gin"
9)
10
11func RateLimit(c *gin.Context) {
12 limiter := rate.NewLimiter(1, 5) // don't know if this is too much or not enough tbh
13 if limiter.Allow() {
14 c.Next()
15 } else {
16 c.AbortWithStatusJSON(http.StatusTooManyRequests, gin.H{
17 "error": "Rate limit exceeded",
18 })
19 }
20}