36 lines
641 B
Go
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)
|
|
}
|