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