summaryrefslogtreecommitdiff
path: root/vendor/github.com/ulule/limiter/v3/drivers/middleware/gin/middleware.go
diff options
context:
space:
mode:
authorLibravatar Terin Stock <terinjokes@gmail.com>2022-04-26 20:30:25 -0700
committerLibravatar Terin Stock <terinjokes@gmail.com>2023-01-31 15:16:42 +0100
commit83b4c9ebc87d0fddf4e638f13e3af1483912e3a5 (patch)
tree47840b84c0fd3cb226eab2ecb3dbce0617163406 /vendor/github.com/ulule/limiter/v3/drivers/middleware/gin/middleware.go
parent[chore] update URLs to forked source (diff)
downloadgotosocial-83b4c9ebc87d0fddf4e638f13e3af1483912e3a5.tar.xz
[chore] remove vendor
Diffstat (limited to 'vendor/github.com/ulule/limiter/v3/drivers/middleware/gin/middleware.go')
-rw-r--r--vendor/github.com/ulule/limiter/v3/drivers/middleware/gin/middleware.go65
1 files changed, 0 insertions, 65 deletions
diff --git a/vendor/github.com/ulule/limiter/v3/drivers/middleware/gin/middleware.go b/vendor/github.com/ulule/limiter/v3/drivers/middleware/gin/middleware.go
deleted file mode 100644
index 23bad417a..000000000
--- a/vendor/github.com/ulule/limiter/v3/drivers/middleware/gin/middleware.go
+++ /dev/null
@@ -1,65 +0,0 @@
-package gin
-
-import (
- "strconv"
-
- "github.com/gin-gonic/gin"
-
- "github.com/ulule/limiter/v3"
-)
-
-// Middleware is the middleware for gin.
-type Middleware struct {
- Limiter *limiter.Limiter
- OnError ErrorHandler
- OnLimitReached LimitReachedHandler
- KeyGetter KeyGetter
- ExcludedKey func(string) bool
-}
-
-// NewMiddleware return a new instance of a gin middleware.
-func NewMiddleware(limiter *limiter.Limiter, options ...Option) gin.HandlerFunc {
- middleware := &Middleware{
- Limiter: limiter,
- OnError: DefaultErrorHandler,
- OnLimitReached: DefaultLimitReachedHandler,
- KeyGetter: DefaultKeyGetter,
- ExcludedKey: nil,
- }
-
- for _, option := range options {
- option.apply(middleware)
- }
-
- return func(ctx *gin.Context) {
- middleware.Handle(ctx)
- }
-}
-
-// Handle gin request.
-func (middleware *Middleware) Handle(c *gin.Context) {
- key := middleware.KeyGetter(c)
- if middleware.ExcludedKey != nil && middleware.ExcludedKey(key) {
- c.Next()
- return
- }
-
- context, err := middleware.Limiter.Get(c, key)
- if err != nil {
- middleware.OnError(c, err)
- c.Abort()
- return
- }
-
- c.Header("X-RateLimit-Limit", strconv.FormatInt(context.Limit, 10))
- c.Header("X-RateLimit-Remaining", strconv.FormatInt(context.Remaining, 10))
- c.Header("X-RateLimit-Reset", strconv.FormatInt(context.Reset, 10))
-
- if context.Reached {
- middleware.OnLimitReached(c)
- c.Abort()
- return
- }
-
- c.Next()
-}