initial replacement api

This commit is contained in:
Maxim Dolgushin 2023-11-06 14:27:06 +07:00
parent 20f616a36d
commit 15d33a6fe1
5 changed files with 46 additions and 7 deletions

@ -98,7 +98,10 @@ func Run(config *models.Config, logger *zap.Logger) (appErr error) {
return fmt.Errorf("failed to loading openapi spec: %w", err)
}
api := initialize.NewAPI(*controllers)
apix := initialize.NewAPI(*controllers)
_ = apix
api := swagger.NewAPI2(logger, mongoDB)
serverHTTP, httpErr := server.NewHTTP(server.DepsHTTP{
Logger: logger,
@ -114,7 +117,7 @@ func Run(config *models.Config, logger *zap.Logger) (appErr error) {
return httpErr.Wrap("failed to init grpc server")
}
serverHTTP.Register(api)
serverHTTP.Register(&api)
serverGRPC.Register(controllers)
go serverHTTP.Run(&config.HTTP)

@ -42,6 +42,21 @@ func NewAccountRepository(deps AccountRepositoryDeps) *AccountRepository {
}
}
func NewAccountRepository2(logger *zap.Logger, mongo *mongo.Collection) AccountRepository {
if logger == nil {
log.Panicln("logger is nil on <NewAccountRepository>")
}
if mongo == nil {
log.Panicln("mongodb is nil on <NewAccountRepository>")
}
return AccountRepository{
logger: logger,
mongoDB: mongo,
}
}
func (receiver *AccountRepository) FindByUserID(ctx context.Context, id string) (*models.Account, errors.Error) {
filter := bson.M{
fields.Account.UserID: id,

@ -41,6 +41,21 @@ func NewCurrencyRepository(deps CurrencyRepositoryDeps) *CurrencyRepository {
}
}
func NewCurrencyRepository2(logger *zap.Logger, mongo *mongo.Collection) CurrencyRepository {
if logger == nil {
log.Panicln("logger is nil on <NewCurrencyRepository>")
}
if mongo == nil {
log.Panicln("mongodb is nil on <NewCurrencyRepository>")
}
return CurrencyRepository{
logger: logger,
mongoDB: mongo,
}
}
func (receiver *CurrencyRepository) FindCurrenciesList(ctx context.Context, name string) (*models.CurrencyList, errors.Error) {
filter := bson.M{
fields.Currency.Name: name,

@ -8,16 +8,22 @@ import (
)
type API2 struct {
logger *zap.Logger
history repository.HistoryRepository
logger *zap.Logger
history repository.HistoryRepository
account repository.AccountRepository
currency repository.CurrencyRepository
// cart repository.CartRepository
// wallet repository.WalletRepository
}
var _ ServerInterface = (*API2)(nil)
func NewAPI2(logger *zap.Logger, db *mongo.Database) API2 {
return API2{
logger: logger,
history: repository.NewHistoryRepository2(logger, db.Collection("histories")),
logger: logger,
history: repository.NewHistoryRepository2(logger, db.Collection("histories")),
currency: repository.NewCurrencyRepository2(logger, db.Collection("currency_lists")),
account: repository.NewAccountRepository2(logger, db.Collection("accounts")),
}
}

@ -86,7 +86,7 @@ func (receiver *HTTP) Stop(ctx context.Context) error {
return nil
}
func (receiver *HTTP) Register(api *swagger.API) *HTTP {
func (receiver *HTTP) Register(api swagger.ServerInterface) *HTTP {
swagger.RegisterHandlers(receiver.echo, api)
return receiver