Have got the processor plumbing working

This commit is contained in:
Leon Mika 2026-03-26 21:16:50 +11:00
parent 036b683eab
commit 599c72d465
11 changed files with 185 additions and 39 deletions

View file

@ -15,6 +15,11 @@ type ImageEditHandlers struct {
ImageEditService *imgedit.Service
}
type sessionResponse struct {
Session *models.ImageEditSession `json:"session"`
PreviewURL string `json:"preview_url"`
}
func (ieh ImageEditHandlers) Create(c fiber.Ctx) error {
var req struct {
BaseUploadID int64 `json:"base_upload"`
@ -29,10 +34,7 @@ func (ieh ImageEditHandlers) Create(c fiber.Ctx) error {
return err
}
var resp = struct {
Session models.ImageEditSession `json:"session"`
PreviewURL string `json:"preview_url"`
}{
var resp = sessionResponse{
Session: res,
PreviewURL: res.PreviewURL(),
}
@ -65,3 +67,27 @@ func (ieh ImageEditHandlers) Preview(c fiber.Ctx) error {
}
})
}
func (ieh ImageEditHandlers) AddProcessor(c fiber.Ctx) error {
sessionID := c.Params("sessionID")
if sessionID == "" {
log.Println("No session ID")
return fiber.ErrBadRequest
}
var req imgedit.AddProcessorReq
if err := c.Bind().Body(&req); err != nil {
log.Printf("Failed to parse request body: %v", err)
return fiber.ErrBadRequest
}
res, err := ieh.ImageEditService.AddProcessor(c.Context(), sessionID, req)
if err != nil {
return err
}
return c.Status(http.StatusOK).JSON(sessionResponse{
Session: res,
PreviewURL: res.PreviewURL(),
})
}

View file

@ -2,6 +2,7 @@ package handlers
import (
"fmt"
"log"
"net/url"
"regexp"
@ -37,6 +38,13 @@ func (h IndexHandler) Index(c fiber.Ctx) error {
}
}
sess := session.FromContext(c)
lastSiteID, ok := sess.Get("last_site_id").(int64)
log.Printf("last site id: %v", lastSiteID)
if ok {
return c.Redirect().To(fmt.Sprintf("/sites/%v/posts", lastSiteID))
}
site, err := h.SiteService.BestSite(c.Context(), user)
if err != nil {
return err

View file

@ -5,6 +5,7 @@ import (
"emperror.dev/errors"
"github.com/gofiber/fiber/v3"
"github.com/gofiber/fiber/v3/middleware/session"
"lmika.dev/lmika/weiro/models"
"lmika.dev/lmika/weiro/providers/db"
"lmika.dev/lmika/weiro/services/sites"
@ -41,6 +42,9 @@ func RequiresSite(sites *sites.Service) func(c fiber.Ctx) error {
}
c.Locals("allSites", sitesOwnedByUser)
sess := session.FromContext(c)
sess.Set("last_site_id", siteID)
if pubTargets, err := sites.BestPubTarget(c.Context(), site); err == nil {
c.Locals("pubTarget", pubTargets)
}