feat: adding limits

This commit is contained in:
2025-08-30 10:45:53 +01:00
parent de96f12b55
commit d97593d487
5 changed files with 120 additions and 14 deletions

View File

@@ -10,6 +10,7 @@ import (
"os"
"path/filepath"
"screenmark/screenmark/.gen/haystack/haystack/model"
"screenmark/screenmark/limits"
"screenmark/screenmark/middleware"
"screenmark/screenmark/models"
@@ -18,9 +19,10 @@ import (
)
type ImageHandler struct {
logger *log.Logger
imageModel models.ImageModel
userModel models.UserModel
logger *log.Logger
imageModel models.ImageModel
userModel models.UserModel
limitsManager limits.LimitsManagerMethods
}
type ImagesReturn struct {
@@ -153,18 +155,19 @@ func (h *ImageHandler) CreateRoutes(r chi.Router) {
r.Use(middleware.SetJson)
r.Get("/", h.listImages)
r.Post("/{name}", h.uploadImage)
r.Post("/{name}", middleware.WithLimit(h.logger, h.limitsManager.HasReachedImageLimit, h.uploadImage))
})
}
func CreateImageHandler(db *sql.DB) ImageHandler {
func CreateImageHandler(db *sql.DB, limitsManager limits.LimitsManagerMethods) ImageHandler {
imageModel := models.NewImageModel(db)
userModel := models.NewUserModel(db)
logger := log.New(os.Stdout).WithPrefix("Images")
return ImageHandler{
logger: logger,
imageModel: imageModel,
userModel: userModel,
logger: logger,
imageModel: imageModel,
userModel: userModel,
limitsManager: limitsManager,
}
}