34 lines
827 B
Go
Executable File
34 lines
827 B
Go
Executable File
package medias
|
|
|
|
import (
|
|
_ "git.ipao.vip/rogeecn/atom"
|
|
_ "git.ipao.vip/rogeecn/atom/contracts"
|
|
"github.com/gofiber/fiber/v3"
|
|
log "github.com/sirupsen/logrus"
|
|
)
|
|
|
|
// @provider:except contracts.HttpRoute atom.GroupRoutes
|
|
type Router struct {
|
|
log *log.Entry `inject:"false"`
|
|
|
|
controller *Controller
|
|
}
|
|
|
|
func (r *Router) Name() string {
|
|
return "medias"
|
|
}
|
|
|
|
func (r *Router) Prepare() error {
|
|
r.log = log.WithField("http.group", r.Name())
|
|
return nil
|
|
}
|
|
|
|
func (r *Router) Register(router fiber.Router) {
|
|
group := router.Group(r.Name())
|
|
group.Post("", r.controller.List)
|
|
group.Get(":hash", r.controller.Show)
|
|
group.Get(":hash/:type<regex([video|audio])>", r.controller.MediaIndex)
|
|
group.Get(":hash/:type<regex([video|audio])>/:segment.ts", r.controller.MediaSegment)
|
|
group.Patch(":hash/checkout", r.controller.Checkout)
|
|
}
|