github.com/easysoft/zendata@v0.0.0-20240513203326-705bd5a7fd67/internal/server/server.go (about) 1 package server 2 3 import ( 4 "fmt" 5 6 serverConfig "github.com/easysoft/zendata/internal/server/config" 7 logUtils "github.com/easysoft/zendata/pkg/utils/log" 8 "github.com/easysoft/zendata/pkg/utils/vari" 9 "github.com/facebookgo/inject" 10 ) 11 12 // Server for admin server 13 type Server struct { 14 Config *serverConfig.Config `inject:""` 15 } 16 17 func InitServer(config *serverConfig.Config) (server *Server, err error) { 18 var g inject.Graph 19 20 server = &Server{} 21 22 // inject objects 23 if err := g.Provide( 24 &inject.Object{Value: config}, 25 &inject.Object{Value: vari.DB}, 26 &inject.Object{Value: server}, 27 ); err != nil { 28 logUtils.PrintErrMsg(fmt.Sprintf("provide usecase objects to the Graph: %v", err)) 29 } 30 err = g.Populate() 31 if err != nil { 32 logUtils.PrintErrMsg(fmt.Sprintf("populate the incomplete Objects: %v", err)) 33 } 34 35 return 36 }