package cmd

import (
	"context"
	"practice_Go/internal/controller/shows"

	"practice_Go/internal/controller/ebooks"
	"practice_Go/internal/controller/live_streams"

	"github.com/gogf/gf/v2/frame/g"
	"github.com/gogf/gf/v2/net/ghttp"
	"github.com/gogf/gf/v2/os/gcmd"
)

func MiddlewareCORS(r *ghttp.Request) {
	r.Response.CORSDefault()
	r.Middleware.Next()
}

var (
	Main = gcmd.Command{
		Name:  "main",
		Usage: "main",
		Brief: "start http server",
		Func: func(ctx context.Context, parser *gcmd.Parser) (err error) {
			s := g.Server()
			s.Group("/api", func(group *ghttp.RouterGroup) {
				group.Middleware(MiddlewareCORS)
				group.POST("/ebooks/getEbookList", ebooks.Ebooks.GetEbooksList)
				group.POST("/live/getLiveList", live_streams.Live.GetLiveList)
				group.POST("/show/getShowList", shows.Shows.GetShowList)
			})
			s.Run()
			return nil
		},
	}
)