Have got uploads working

This commit is contained in:
Leon Mika 2026-03-02 20:48:41 +11:00
parent 97112d99dd
commit 6b697e008f
20 changed files with 751 additions and 7 deletions

View file

@ -2,7 +2,6 @@ package handlers
import (
"fmt"
"log"
"strconv"
"github.com/gofiber/fiber/v3"
@ -92,8 +91,6 @@ func (ph PostsHandler) Update(c fiber.Ctx) error {
}
func (ph PostsHandler) Patch(c fiber.Ctx) error {
log.Println("PATCH")
postIDStr := c.Params("postID")
if postIDStr == "" {
return fiber.ErrBadRequest
@ -110,8 +107,6 @@ func (ph PostsHandler) Patch(c fiber.Ctx) error {
return err
}
log.Println("Request")
switch req.Action {
case "restore":
if err := ph.PostService.RestorePost(c.Context(), postID); err != nil {

62
handlers/uploads.go Normal file
View file

@ -0,0 +1,62 @@
package handlers
import (
"github.com/gofiber/fiber/v3"
"lmika.dev/lmika/weiro/services/uploads"
)
type UploadsHandler struct {
UploadsService *uploads.Service
}
func (uh UploadsHandler) Index(c fiber.Ctx) error {
return c.Render("uploads/index", nil)
}
func (uh UploadsHandler) New(c fiber.Ctx) error {
var req uploads.NewPendingRequest
if err := c.Bind().Body(&req); err != nil {
return err
}
res, err := uh.UploadsService.NewPending(c.Context(), req)
if err != nil {
return err
}
return c.JSON(res)
}
func (uh UploadsHandler) UploadPart(c fiber.Ctx) error {
guid := c.Params("guid")
if guid == "" {
return fiber.ErrBadRequest
}
if err := uh.UploadsService.WriteToPending(c.Context(), guid, c.Body()); err != nil {
return err
}
return c.Status(fiber.StatusAccepted).JSON(fiber.Map{})
}
func (uh UploadsHandler) UploadComplete(c fiber.Ctx) error {
guid := c.Params("guid")
if guid == "" {
return fiber.ErrBadRequest
}
var res struct {
Hash string `json:"hash"`
}
if err := c.Bind().Body(&res); err != nil {
return err
}
if err := uh.UploadsService.FinalizePending(c.Context(), guid, res.Hash); err != nil {
return err
}
return c.Status(fiber.StatusAccepted).JSON(fiber.Map{})
}