wip: processing images

This commit is contained in:
2025-09-21 21:48:22 +01:00
parent 221afb599b
commit 013447fa90
6 changed files with 42 additions and 14 deletions

View File

@@ -9,9 +9,11 @@ import (
"net/http"
"os"
"path/filepath"
"screenmark/screenmark/.gen/haystack/haystack/model"
"screenmark/screenmark/limits"
"screenmark/screenmark/middleware"
"screenmark/screenmark/models"
"screenmark/screenmark/processor"
"github.com/charmbracelet/log"
"github.com/go-chi/chi/v5"
@@ -27,6 +29,8 @@ type ImageHandler struct {
limitsManager limits.LimitsManagerMethods
jwtManager *middleware.JwtManager
processor *processor.Processor[model.Image]
}
type ImagesReturn struct {
@@ -139,16 +143,17 @@ func (h *ImageHandler) uploadImage(w http.ResponseWriter, r *http.Request) {
middleware.WriteErrorBadRequest(h.logger, "unsupported content type, need octet-stream or base64", w)
return
}
ctx := r.Context()
err = h.imageModel.Save(ctx, imageName, image, userID)
newImage, err := h.imageModel.Save(ctx, imageName, image, userID)
if err != nil {
middleware.WriteErrorInternal(h.logger, "could not save image to DB", w)
middleware.WriteErrorInternal(h.logger, "could not save image to DB: "+err.Error(), w)
return
}
h.logger.Info("About to add image")
h.processor.Add(newImage)
w.WriteHeader(http.StatusOK)
}
@@ -202,7 +207,12 @@ func (h *ImageHandler) CreateRoutes(r chi.Router) {
})
}
func CreateImageHandler(db *sql.DB, limitsManager limits.LimitsManagerMethods, jwtManager *middleware.JwtManager) ImageHandler {
func CreateImageHandler(
db *sql.DB,
limitsManager limits.LimitsManagerMethods,
jwtManager *middleware.JwtManager,
processor *processor.Processor[model.Image],
) ImageHandler {
imageModel := models.NewImageModel(db)
userModel := models.NewUserModel(db)
logger := log.New(os.Stdout).WithPrefix("Images")
@@ -213,5 +223,6 @@ func CreateImageHandler(db *sql.DB, limitsManager limits.LimitsManagerMethods, j
userModel: userModel,
limitsManager: limitsManager,
jwtManager: jwtManager,
processor: processor,
}
}