Integrate cobra into the framework part1
This commit is contained in:
@ -5,26 +5,26 @@ import (
|
||||
"git.vinchent.xyz/vinchent/go-web/framework/contract"
|
||||
)
|
||||
|
||||
type GoWebProvider struct {
|
||||
type GoWebAppProvider struct {
|
||||
BaseFolder string
|
||||
}
|
||||
|
||||
func (goweb *GoWebProvider) Register(c framework.Container) framework.NewInstance {
|
||||
func (goweb *GoWebAppProvider) Register(c framework.Container) framework.NewInstance {
|
||||
return NewGoWebApp
|
||||
}
|
||||
|
||||
func (goweb *GoWebProvider) Init(c framework.Container) error {
|
||||
func (goweb *GoWebAppProvider) Init(c framework.Container) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (goweb *GoWebProvider) InstantiateLater() bool {
|
||||
func (goweb *GoWebAppProvider) InstantiateLater() bool {
|
||||
return false
|
||||
}
|
||||
|
||||
func (goweb *GoWebProvider) Params(c framework.Container) []interface{} {
|
||||
func (goweb *GoWebAppProvider) Params(c framework.Container) []interface{} {
|
||||
return []interface{}{c, goweb.BaseFolder}
|
||||
}
|
||||
|
||||
func (goweb *GoWebProvider) Name() string {
|
||||
func (goweb *GoWebAppProvider) Name() string {
|
||||
return contract.AppName
|
||||
}
|
||||
|
@ -75,13 +75,13 @@ func (goweb *GoWebApp) ProvidersFolder() string {
|
||||
return filepath.Join(goweb.BaseFolder(), "providers")
|
||||
}
|
||||
|
||||
func (goweb *GoWebApp) HttpFolder() string {
|
||||
return filepath.Join(goweb.BaseFolder(), "http")
|
||||
func (goweb *GoWebApp) WebFolder() string {
|
||||
return filepath.Join(goweb.BaseFolder(), "web")
|
||||
}
|
||||
|
||||
func (goweb *GoWebApp) MiddlewaresFolder() string {
|
||||
// http/middlewares
|
||||
return filepath.Join(goweb.HttpFolder(), "middlewares")
|
||||
return filepath.Join(goweb.WebFolder(), "middlewares")
|
||||
}
|
||||
|
||||
func (goweb *GoWebApp) ConsoleFolder() string {
|
||||
|
31
framework/providers/kernel/provider.go
Normal file
31
framework/providers/kernel/provider.go
Normal file
@ -0,0 +1,31 @@
|
||||
package kernel
|
||||
|
||||
import (
|
||||
"git.vinchent.xyz/vinchent/go-web/framework"
|
||||
"git.vinchent.xyz/vinchent/go-web/framework/contract"
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
type GoWebKernelProvider struct {
|
||||
HttpEngine *gin.Engine
|
||||
}
|
||||
|
||||
func (goweb *GoWebKernelProvider) Register(c framework.Container) framework.NewInstance {
|
||||
return NewGoWebKernelService
|
||||
}
|
||||
|
||||
func (goweb *GoWebKernelProvider) Init(c framework.Container) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (goweb *GoWebKernelProvider) InstantiateLater() bool {
|
||||
return false
|
||||
}
|
||||
|
||||
func (goweb *GoWebKernelProvider) Params(c framework.Container) []interface{} {
|
||||
return []interface{}{c, goweb.HttpEngine}
|
||||
}
|
||||
|
||||
func (goweb *GoWebKernelProvider) Name() string {
|
||||
return contract.AppName
|
||||
}
|
22
framework/providers/kernel/service.go
Normal file
22
framework/providers/kernel/service.go
Normal file
@ -0,0 +1,22 @@
|
||||
package kernel
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
type GoWebKernelService struct {
|
||||
// Since the container is included in the engine, we don't need to pass
|
||||
// it as an argument.
|
||||
engine *gin.Engine
|
||||
}
|
||||
|
||||
func NewGoWebKernelService(params ...interface{}) (interface{}, error) {
|
||||
httpEngine := params[0].(*gin.Engine)
|
||||
return &GoWebKernelService{engine: httpEngine}, nil
|
||||
}
|
||||
|
||||
func (goweb *GoWebKernelService) HttpEngine() http.Handler {
|
||||
return goweb.engine
|
||||
}
|
Reference in New Issue
Block a user