GildedRose-Refactoring-Kata/go/cmd/serve.go
2023-07-11 20:36:37 +01:00

41 lines
1014 B
Go

package cmd
import (
"github.com/emilybache/gildedrose-refactoring-kata/lib"
"github.com/emilybache/gildedrose-refactoring-kata/api/middlewares"
"github.com/emilybache/gildedrose-refactoring-kata/api/routes"
"github.com/spf13/cobra"
)
type ServeCommand struct{}
func (this *ServeCommand) Short() string {
return "serve application"
}
func (this *ServeCommand) Setup(command *cobra.Command) {}
func (this *ServeCommand) Run() lib.CommandRunner {
return func(
middleware middlewares.Middlewares,
env lib.Env,
requestHandler lib.RequestHandler,
route routes.Routes,
logger lib.Logger,
) {
logger.Info("Init")
middleware.Setup()
route.Setup()
logger.Info("Running server")
if env.ServerPort == "" {
_ = requestHandler.Gin.Run()
} else {
_ = requestHandler.Gin.Run(":" + env.ServerPort)
}
}
}
func NewServeCommand() *ServeCommand {
return &ServeCommand{}
}