github.com/weplanx/server@v0.2.6-0.20240318110640-f7e75155779a/bootstrap/wire.go (about)

     1  //go:build wireinject
     2  // +build wireinject
     3  
     4  package bootstrap
     5  
     6  import (
     7  	"github.com/google/wire"
     8  	"github.com/weplanx/server/api"
     9  	"github.com/weplanx/server/common"
    10  	"github.com/weplanx/server/openapi"
    11  	"github.com/weplanx/server/xapi"
    12  )
    13  
    14  func NewAPI(values *common.Values) (*api.API, error) {
    15  	wire.Build(
    16  		wire.Struct(new(api.API), "*"),
    17  		wire.Struct(new(common.Inject), "*"),
    18  		UseMongoDB,
    19  		UseDatabase,
    20  		UseRedis,
    21  		UseNats,
    22  		UseJetStream,
    23  		UseKeyValue,
    24  		UseValues,
    25  		UseSessions,
    26  		UseRest,
    27  		UseCsrf,
    28  		UseCipher,
    29  		UseAPIPassport,
    30  		UseLocker,
    31  		UseCaptcha,
    32  		UseTransfer,
    33  		UseInflux,
    34  		UseHertz,
    35  		api.Provides,
    36  	)
    37  	return &api.API{}, nil
    38  }
    39  
    40  func NewXAPI(values *common.Values) (*xapi.API, error) {
    41  	wire.Build(
    42  		wire.Struct(new(xapi.API), "*"),
    43  		wire.Struct(new(common.Inject), "*"),
    44  		UseMongoDB,
    45  		UseDatabase,
    46  		UseRedis,
    47  		UseNats,
    48  		UseJetStream,
    49  		UseKeyValue,
    50  		UseCipher,
    51  		UseLocker,
    52  		UseCaptcha,
    53  		UseTransfer,
    54  		UseHertz,
    55  		xapi.Provides,
    56  	)
    57  	return &xapi.API{}, nil
    58  }
    59  
    60  func NewOpenAPI(values *common.Values) (*openapi.API, error) {
    61  	wire.Build(
    62  		wire.Struct(new(openapi.API), "*"),
    63  		wire.Struct(new(common.Inject), "*"),
    64  		UseMongoDB,
    65  		UseDatabase,
    66  		UseRedis,
    67  		UseNats,
    68  		UseJetStream,
    69  		UseKeyValue,
    70  		UseCipher,
    71  		UseLocker,
    72  		UseCaptcha,
    73  		UseTransfer,
    74  		UseHertz,
    75  		openapi.Provides,
    76  	)
    77  	return &openapi.API{}, nil
    78  }