diff options
author | 2022-04-26 20:30:25 -0700 | |
---|---|---|
committer | 2023-01-31 15:16:42 +0100 | |
commit | 83b4c9ebc87d0fddf4e638f13e3af1483912e3a5 (patch) | |
tree | 47840b84c0fd3cb226eab2ecb3dbce0617163406 /vendor/github.com/ulule/limiter/v3/drivers/middleware/gin/middleware.go | |
parent | [chore] update URLs to forked source (diff) | |
download | gotosocial-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.go | 65 |
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() -} |