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  }