stream-poc2/middleware.go
2025-10-09 22:21:38 +02:00

36 lines
641 B
Go

package main
import (
"os"
"stream-poc2/model"
"github.com/gin-gonic/gin"
)
func mediaMustExists(ctx *gin.Context) {
id := ctx.Param("id")
metadata, err := loadMediaMetadata(id)
if err != nil {
if os.IsNotExist(err) {
ctx.AbortWithStatus(404)
return
}
ctx.AbortWithStatus(500)
return
}
ctx.Set("m", metadata)
ctx.Set("mid", id)
}
func getMetadata(ctx *gin.Context) (string, model.MediaMetadata) {
m, ok := ctx.Get("m")
if !ok {
panic("failed to load key for media metadata")
}
mid, ok := ctx.Get("mid")
if !ok {
panic("failed to load key for media id")
}
return mid.(string), m.(model.MediaMetadata)
}