generated from PenaSide/GolangTemplate
test: initialize packages
This commit is contained in:
parent
de8e8c14e4
commit
0cb1d6bb1b
@ -3,6 +3,7 @@ package client
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"log"
|
||||
"net/url"
|
||||
|
||||
"go.uber.org/zap"
|
||||
@ -23,6 +24,18 @@ type AuthClient struct {
|
||||
}
|
||||
|
||||
func NewAuthClient(deps *AuthClientDeps) *AuthClient {
|
||||
if deps == nil {
|
||||
log.Panicln("deps is nil on <v>")
|
||||
}
|
||||
|
||||
if deps.Logger == nil {
|
||||
log.Panicln("logger is nil on <NewAuthClient>")
|
||||
}
|
||||
|
||||
if deps.URLs == nil {
|
||||
log.Panicln("auth urls is nil on <NewAuthClient>")
|
||||
}
|
||||
|
||||
return &AuthClient{
|
||||
logger: deps.Logger,
|
||||
urls: deps.URLs,
|
||||
|
||||
@ -3,6 +3,7 @@ package account
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"log"
|
||||
"net/http"
|
||||
|
||||
"github.com/labstack/echo/v4"
|
||||
@ -30,13 +31,25 @@ type Deps struct {
|
||||
|
||||
type Controller struct {
|
||||
logger *zap.Logger
|
||||
service accountService
|
||||
Service accountService
|
||||
}
|
||||
|
||||
func New(deps *Deps) *Controller {
|
||||
if deps == nil {
|
||||
log.Panicln("deps is nil on <New (account controller)>")
|
||||
}
|
||||
|
||||
if deps.Logger == nil {
|
||||
log.Panicln("logger is nil on <New (account controller)>")
|
||||
}
|
||||
|
||||
if deps.Service == nil {
|
||||
log.Panicln("account service is nil on <New (account controller)>")
|
||||
}
|
||||
|
||||
return &Controller{
|
||||
logger: deps.Logger,
|
||||
service: deps.Service,
|
||||
Service: deps.Service,
|
||||
}
|
||||
}
|
||||
|
||||
@ -49,7 +62,7 @@ func (receiver *Controller) GetAccount(ctx echo.Context) error {
|
||||
))
|
||||
}
|
||||
|
||||
account, err := receiver.service.GetAccountByUserID(ctx.Request().Context(), userID)
|
||||
account, err := receiver.Service.GetAccountByUserID(ctx.Request().Context(), userID)
|
||||
if err != nil {
|
||||
return echotools.ResponseError(ctx, err)
|
||||
}
|
||||
@ -58,7 +71,7 @@ func (receiver *Controller) GetAccount(ctx echo.Context) error {
|
||||
}
|
||||
|
||||
func (receiver *Controller) GetDirectAccount(ctx echo.Context, userID string) error {
|
||||
account, err := receiver.service.GetAccountByUserID(ctx.Request().Context(), userID)
|
||||
account, err := receiver.Service.GetAccountByUserID(ctx.Request().Context(), userID)
|
||||
if err != nil {
|
||||
return echotools.ResponseError(ctx, err)
|
||||
}
|
||||
@ -67,7 +80,7 @@ func (receiver *Controller) GetDirectAccount(ctx echo.Context, userID string) er
|
||||
}
|
||||
|
||||
func (receiver *Controller) GetAccounts(ctx echo.Context, params swagger.PaginationAccountsParams) error {
|
||||
response, err := receiver.service.GetAccountsList(
|
||||
response, err := receiver.Service.GetAccountsList(
|
||||
ctx.Request().Context(),
|
||||
utils.DeterminePagination(params.Page, params.Limit),
|
||||
)
|
||||
@ -87,7 +100,7 @@ func (receiver *Controller) CreateAccount(ctx echo.Context) error {
|
||||
))
|
||||
}
|
||||
|
||||
account, err := receiver.service.CreateAccountByUserID(ctx.Request().Context(), userID)
|
||||
account, err := receiver.Service.CreateAccountByUserID(ctx.Request().Context(), userID)
|
||||
if err != nil {
|
||||
return echotools.ResponseError(ctx, err)
|
||||
}
|
||||
@ -104,7 +117,7 @@ func (receiver *Controller) RemoveAccount(ctx echo.Context) error {
|
||||
))
|
||||
}
|
||||
|
||||
account, err := receiver.service.RemoveAccount(ctx.Request().Context(), userID)
|
||||
account, err := receiver.Service.RemoveAccount(ctx.Request().Context(), userID)
|
||||
if err != nil {
|
||||
return echotools.ResponseError(ctx, err)
|
||||
}
|
||||
@ -113,7 +126,7 @@ func (receiver *Controller) RemoveAccount(ctx echo.Context) error {
|
||||
}
|
||||
|
||||
func (receiver *Controller) RemoveDirectAccount(ctx echo.Context, userID string) error {
|
||||
account, err := receiver.service.RemoveAccount(ctx.Request().Context(), userID)
|
||||
account, err := receiver.Service.RemoveAccount(ctx.Request().Context(), userID)
|
||||
if err != nil {
|
||||
return echotools.ResponseError(ctx, err)
|
||||
}
|
||||
|
||||
@ -3,6 +3,7 @@ package currency
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"log"
|
||||
"net/http"
|
||||
|
||||
"github.com/labstack/echo/v4"
|
||||
@ -27,6 +28,18 @@ type Controller struct {
|
||||
}
|
||||
|
||||
func New(deps *Deps) *Controller {
|
||||
if deps == nil {
|
||||
log.Panicln("deps is nil on <New (account controller)>")
|
||||
}
|
||||
|
||||
if deps.Logger == nil {
|
||||
log.Panicln("logger is nil on <New (account controller)>")
|
||||
}
|
||||
|
||||
if deps.CurrencyService == nil {
|
||||
log.Panicln("currency service is nil on <New (account controller)>")
|
||||
}
|
||||
|
||||
return &Controller{
|
||||
logger: deps.Logger,
|
||||
currencyService: deps.CurrencyService,
|
||||
|
||||
@ -1,9 +1,12 @@
|
||||
package initialize
|
||||
|
||||
import "penahub.gitlab.yandexcloud.net/pena-services/customer/internal/swagger"
|
||||
import (
|
||||
"penahub.gitlab.yandexcloud.net/pena-services/customer/internal/swagger"
|
||||
)
|
||||
|
||||
func NewAPI(controllers *Controllers) *swagger.API {
|
||||
return swagger.New(&swagger.Deps{
|
||||
AccountController: controllers.AccountController,
|
||||
AccountController: controllers.AccountController,
|
||||
CurrencyController: controllers.CurrencyController,
|
||||
})
|
||||
}
|
||||
|
||||
@ -44,6 +44,7 @@ func TestNewAPI(t *testing.T) {
|
||||
|
||||
assert.NotNil(t, api)
|
||||
assert.NotNil(t, api.AccountController)
|
||||
assert.NotNil(t, api.CurrencyController)
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
@ -4,13 +4,20 @@ import (
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"go.uber.org/zap"
|
||||
"penahub.gitlab.yandexcloud.net/pena-services/customer/internal/initialize"
|
||||
"penahub.gitlab.yandexcloud.net/pena-services/customer/internal/models"
|
||||
)
|
||||
|
||||
func TestNewClients(t *testing.T) {
|
||||
t.Run("Клиенты должны успешно инициализироваться", func(t *testing.T) {
|
||||
logger := zap.New(zap.L().Core())
|
||||
|
||||
assert.NotPanics(t, func() {
|
||||
clients := initialize.NewClients(&initialize.ClientsDeps{})
|
||||
clients := initialize.NewClients(&initialize.ClientsDeps{
|
||||
Logger: logger,
|
||||
AuthURL: &models.AuthMicroServiceURL{},
|
||||
})
|
||||
|
||||
assert.NotNil(t, clients)
|
||||
assert.NotNil(t, clients.AuthClient)
|
||||
|
||||
@ -1,8 +1,11 @@
|
||||
package initialize
|
||||
|
||||
import (
|
||||
"log"
|
||||
|
||||
"go.uber.org/zap"
|
||||
"penahub.gitlab.yandexcloud.net/pena-services/customer/internal/controller/account"
|
||||
"penahub.gitlab.yandexcloud.net/pena-services/customer/internal/controller/currency"
|
||||
)
|
||||
|
||||
type ControllersDeps struct {
|
||||
@ -11,14 +14,31 @@ type ControllersDeps struct {
|
||||
}
|
||||
|
||||
type Controllers struct {
|
||||
AccountController *account.Controller
|
||||
AccountController *account.Controller
|
||||
CurrencyController *currency.Controller
|
||||
}
|
||||
|
||||
func NewControllers(deps *ControllersDeps) *Controllers {
|
||||
if deps == nil {
|
||||
log.Panicln("deps is nil on <NewControllers>")
|
||||
}
|
||||
|
||||
if deps.Logger == nil {
|
||||
log.Panicln("logger is nil on <NewControllers>")
|
||||
}
|
||||
|
||||
if deps.Services == nil {
|
||||
log.Panicln("services is nil on <NewControllers>")
|
||||
}
|
||||
|
||||
return &Controllers{
|
||||
AccountController: account.New(&account.Deps{
|
||||
Logger: deps.Logger,
|
||||
Service: deps.Services.AccountService,
|
||||
}),
|
||||
CurrencyController: currency.New(¤cy.Deps{
|
||||
Logger: deps.Logger,
|
||||
CurrencyService: deps.Services.CurrencyService,
|
||||
}),
|
||||
}
|
||||
}
|
||||
|
||||
@ -4,18 +4,23 @@ import (
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"go.uber.org/zap"
|
||||
"penahub.gitlab.yandexcloud.net/pena-services/customer/internal/initialize"
|
||||
)
|
||||
|
||||
func TestNewControllers(t *testing.T) {
|
||||
t.Run("Контроллеры должны успешно инициализироваться", func(t *testing.T) {
|
||||
logger := zap.New(zap.L().Core())
|
||||
|
||||
assert.NotPanics(t, func() {
|
||||
controllers := initialize.NewControllers(&initialize.ControllersDeps{
|
||||
Logger: logger,
|
||||
Services: &initialize.Services{},
|
||||
})
|
||||
|
||||
assert.NotNil(t, controllers)
|
||||
assert.NotNil(t, controllers.AccountController)
|
||||
assert.NotNil(t, controllers.CurrencyController)
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
@ -1,27 +1,46 @@
|
||||
package initialize
|
||||
|
||||
import (
|
||||
"log"
|
||||
|
||||
"go.mongodb.org/mongo-driver/mongo"
|
||||
"go.uber.org/zap"
|
||||
"penahub.gitlab.yandexcloud.net/pena-services/customer/internal/repository"
|
||||
)
|
||||
|
||||
type RepositoriesDeps struct {
|
||||
MongoDB *mongo.Database
|
||||
Logger *zap.Logger
|
||||
MongoDB *mongo.Database
|
||||
}
|
||||
|
||||
type Repositories struct {
|
||||
HealthRepository *repository.HealthRepository
|
||||
AccountRepository *repository.AccountRepository
|
||||
HealthRepository *repository.HealthRepository
|
||||
AccountRepository *repository.AccountRepository
|
||||
CurrencyRepository *repository.CurrencyRepository
|
||||
}
|
||||
|
||||
func NewRepositories(deps *RepositoriesDeps) *Repositories {
|
||||
if deps == nil {
|
||||
log.Panicln("deps is nil on <NewRepositories>")
|
||||
}
|
||||
|
||||
if deps.Logger == nil {
|
||||
log.Panicln("logger is nil on <NewRepositories>")
|
||||
}
|
||||
|
||||
if deps.MongoDB == nil {
|
||||
log.Panicln("mongodb is nil on <NewRepositories>")
|
||||
}
|
||||
|
||||
return &Repositories{
|
||||
HealthRepository: repository.NewHealthRepository(deps.MongoDB),
|
||||
AccountRepository: repository.NewAccountRepository(&repository.AccountRepositoryDeps{
|
||||
MongoDB: deps.MongoDB.Collection("accounts"),
|
||||
Logger: deps.Logger,
|
||||
MongoDB: deps.MongoDB.Collection("accounts"),
|
||||
}),
|
||||
CurrencyRepository: repository.NewCurrencyRepository(&repository.CurrencyRepositoryDeps{
|
||||
Logger: deps.Logger,
|
||||
MongoDB: deps.MongoDB.Collection("currency_lists"),
|
||||
}),
|
||||
}
|
||||
}
|
||||
|
||||
@ -5,6 +5,7 @@ import (
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"go.mongodb.org/mongo-driver/mongo/integration/mtest"
|
||||
"go.uber.org/zap"
|
||||
"penahub.gitlab.yandexcloud.net/pena-services/customer/internal/initialize"
|
||||
)
|
||||
|
||||
@ -12,14 +13,18 @@ func TestNewRepositories(t *testing.T) {
|
||||
mt := mtest.New(t, mtest.NewOptions().ClientType(mtest.Mock))
|
||||
|
||||
mt.Run("Репозитории должны успешно инициализироваться", func(t *mtest.T) {
|
||||
logger := zap.New(zap.L().Core())
|
||||
|
||||
assert.NotPanics(t, func() {
|
||||
repositories := initialize.NewRepositories(&initialize.RepositoriesDeps{
|
||||
Logger: logger,
|
||||
MongoDB: t.Client.Database("test"),
|
||||
})
|
||||
|
||||
assert.NotNil(t, repositories)
|
||||
assert.NotNil(t, repositories.AccountRepository)
|
||||
assert.NotNil(t, repositories.HealthRepository)
|
||||
assert.NotNil(t, repositories.CurrencyRepository)
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
@ -3,6 +3,7 @@ package initialize
|
||||
import (
|
||||
"go.uber.org/zap"
|
||||
"penahub.gitlab.yandexcloud.net/pena-services/customer/internal/service/account"
|
||||
"penahub.gitlab.yandexcloud.net/pena-services/customer/internal/service/currency"
|
||||
)
|
||||
|
||||
type ServicesDeps struct {
|
||||
@ -12,31 +13,20 @@ type ServicesDeps struct {
|
||||
}
|
||||
|
||||
type Services struct {
|
||||
AccountService *account.Service
|
||||
AccountService *account.Service
|
||||
CurrencyService *currency.Service
|
||||
}
|
||||
|
||||
func NewServices(deps *ServicesDeps) *Services {
|
||||
if deps == nil {
|
||||
panic("deps is nil")
|
||||
}
|
||||
|
||||
if deps.Logger == nil {
|
||||
panic("logger is nil")
|
||||
}
|
||||
|
||||
if deps.Repositories == nil {
|
||||
panic("repositories is nil")
|
||||
}
|
||||
|
||||
if deps.Clients == nil {
|
||||
panic("clients is nil")
|
||||
}
|
||||
|
||||
return &Services{
|
||||
AccountService: account.New(&account.Deps{
|
||||
Logger: deps.Logger,
|
||||
Repository: deps.Repositories.AccountRepository,
|
||||
AuthClient: deps.Clients.AuthClient,
|
||||
}),
|
||||
CurrencyService: currency.New(¤cy.Deps{
|
||||
Logger: deps.Logger,
|
||||
Repository: deps.Repositories.CurrencyRepository,
|
||||
}),
|
||||
}
|
||||
}
|
||||
|
||||
@ -5,19 +5,30 @@ import (
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"go.mongodb.org/mongo-driver/mongo/integration/mtest"
|
||||
"go.uber.org/zap"
|
||||
"penahub.gitlab.yandexcloud.net/pena-services/customer/internal/initialize"
|
||||
"penahub.gitlab.yandexcloud.net/pena-services/customer/internal/models"
|
||||
)
|
||||
|
||||
func TestNewServices(t *testing.T) {
|
||||
mt := mtest.New(t, mtest.NewOptions().ClientType(mtest.Mock))
|
||||
|
||||
mt.Run("Сервисы должны успешно инициализироваться", func(t *mtest.T) {
|
||||
logger := zap.New(zap.L().Core())
|
||||
|
||||
assert.NotPanics(t, func() {
|
||||
clients := initialize.NewClients(&initialize.ClientsDeps{})
|
||||
clients := initialize.NewClients(&initialize.ClientsDeps{
|
||||
Logger: logger,
|
||||
AuthURL: &models.AuthMicroServiceURL{},
|
||||
})
|
||||
|
||||
repositories := initialize.NewRepositories(&initialize.RepositoriesDeps{
|
||||
Logger: logger,
|
||||
MongoDB: t.Client.Database("test"),
|
||||
})
|
||||
|
||||
services := initialize.NewServices(&initialize.ServicesDeps{
|
||||
Logger: logger,
|
||||
Clients: clients,
|
||||
Repositories: repositories,
|
||||
})
|
||||
|
||||
@ -3,6 +3,7 @@ package repository
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"log"
|
||||
"time"
|
||||
|
||||
"go.mongodb.org/mongo-driver/bson"
|
||||
@ -17,19 +18,31 @@ import (
|
||||
)
|
||||
|
||||
type AccountRepositoryDeps struct {
|
||||
MongoDB *mongo.Collection
|
||||
Logger *zap.Logger
|
||||
MongoDB *mongo.Collection
|
||||
}
|
||||
|
||||
type AccountRepository struct {
|
||||
mongoDB *mongo.Collection
|
||||
logger *zap.Logger
|
||||
mongoDB *mongo.Collection
|
||||
}
|
||||
|
||||
func NewAccountRepository(deps *AccountRepositoryDeps) *AccountRepository {
|
||||
if deps == nil {
|
||||
log.Panicln("deps is nil on <NewAccountRepository>")
|
||||
}
|
||||
|
||||
if deps.Logger == nil {
|
||||
log.Panicln("logger is nil on <NewAccountRepository>")
|
||||
}
|
||||
|
||||
if deps.MongoDB == nil {
|
||||
log.Panicln("repository is nil on <NewAccountRepository>")
|
||||
}
|
||||
|
||||
return &AccountRepository{
|
||||
mongoDB: deps.MongoDB,
|
||||
logger: deps.Logger,
|
||||
mongoDB: deps.MongoDB,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -3,6 +3,7 @@ package repository
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"log"
|
||||
|
||||
"go.mongodb.org/mongo-driver/bson"
|
||||
"go.mongodb.org/mongo-driver/mongo"
|
||||
@ -24,6 +25,18 @@ type CurrencyRepository struct {
|
||||
}
|
||||
|
||||
func NewCurrencyRepository(deps *CurrencyRepositoryDeps) *CurrencyRepository {
|
||||
if deps == nil {
|
||||
log.Panicln("deps is nil on <NewCurrencyRepository>")
|
||||
}
|
||||
|
||||
if deps.Logger == nil {
|
||||
log.Panicln("logger is nil on <NewCurrencyRepository>")
|
||||
}
|
||||
|
||||
if deps.MongoDB == nil {
|
||||
log.Panicln("repository is nil on <NewCurrencyRepository>")
|
||||
}
|
||||
|
||||
return &CurrencyRepository{
|
||||
mongoDB: deps.MongoDB,
|
||||
logger: deps.Logger,
|
||||
|
||||
@ -7,13 +7,13 @@ import (
|
||||
)
|
||||
|
||||
type HealthRepository struct {
|
||||
mongoDB *mongo.Database
|
||||
MongoDB *mongo.Database
|
||||
}
|
||||
|
||||
func NewHealthRepository(database *mongo.Database) *HealthRepository {
|
||||
return &HealthRepository{mongoDB: database}
|
||||
return &HealthRepository{MongoDB: database}
|
||||
}
|
||||
|
||||
func (receiver *HealthRepository) Check(ctx context.Context) error {
|
||||
return receiver.mongoDB.Client().Ping(ctx, nil)
|
||||
return receiver.MongoDB.Client().Ping(ctx, nil)
|
||||
}
|
||||
|
||||
@ -3,6 +3,7 @@ package account
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"log"
|
||||
"math"
|
||||
|
||||
"go.uber.org/zap"
|
||||
@ -31,20 +32,36 @@ type Deps struct {
|
||||
|
||||
type Service struct {
|
||||
logger *zap.Logger
|
||||
Repository accountRepository
|
||||
AuthClient authClient
|
||||
repository accountRepository
|
||||
authClient authClient
|
||||
}
|
||||
|
||||
func New(deps *Deps) *Service {
|
||||
if deps == nil {
|
||||
log.Panicln("deps is nil on <New (account service)>")
|
||||
}
|
||||
|
||||
if deps.Logger == nil {
|
||||
log.Panicln("logger is nil on <New (account service)>")
|
||||
}
|
||||
|
||||
if deps.Repository == nil {
|
||||
log.Panicln("repository is nil on <New (account service)>")
|
||||
}
|
||||
|
||||
if deps.AuthClient == nil {
|
||||
log.Panicln("auth client is nil on <New (account service)>")
|
||||
}
|
||||
|
||||
return &Service{
|
||||
logger: deps.Logger,
|
||||
Repository: deps.Repository,
|
||||
AuthClient: deps.AuthClient,
|
||||
repository: deps.Repository,
|
||||
authClient: deps.AuthClient,
|
||||
}
|
||||
}
|
||||
|
||||
func (receiver *Service) GetAccountByUserID(ctx context.Context, userID string) (*models.Account, errors.Error) {
|
||||
account, err := receiver.Repository.FindByUserID(ctx, userID)
|
||||
account, err := receiver.repository.FindByUserID(ctx, userID)
|
||||
if err != nil {
|
||||
receiver.logger.Error("failed to get account by id on <GetAccountByUserID> of <AccountService>",
|
||||
zap.Error(err.Extract()),
|
||||
@ -65,7 +82,7 @@ func (receiver *Service) GetAccountsList(ctx context.Context, pagination *models
|
||||
)
|
||||
}
|
||||
|
||||
count, err := receiver.Repository.CountAll(ctx)
|
||||
count, err := receiver.repository.CountAll(ctx)
|
||||
if err != nil {
|
||||
receiver.logger.Error("failed to count accounts on <GetAccountsList> of <AccountService>",
|
||||
zap.Error(err.Extract()),
|
||||
@ -80,7 +97,7 @@ func (receiver *Service) GetAccountsList(ctx context.Context, pagination *models
|
||||
|
||||
totalPages := int64(math.Ceil(float64(count) / float64(pagination.Limit)))
|
||||
|
||||
accounts, err := receiver.Repository.FindMany(ctx, pagination.Page, pagination.Limit)
|
||||
accounts, err := receiver.repository.FindMany(ctx, pagination.Page, pagination.Limit)
|
||||
if err != nil {
|
||||
receiver.logger.Error("failed to get accounts list on <GetAccountsList> of <AccountService>",
|
||||
zap.Error(err.Extract()),
|
||||
@ -117,7 +134,7 @@ func (receiver *Service) CreateAccount(ctx context.Context, account *models.Acco
|
||||
)
|
||||
}
|
||||
|
||||
createdAccount, err := receiver.Repository.Insert(ctx, account)
|
||||
createdAccount, err := receiver.repository.Insert(ctx, account)
|
||||
if err != nil {
|
||||
receiver.logger.Error("failed to create account on <CreateAccount> of <AccountService>",
|
||||
zap.Error(err.Extract()),
|
||||
@ -155,7 +172,7 @@ func (receiver *Service) CreateAccountByUserID(ctx context.Context, userID strin
|
||||
)
|
||||
}
|
||||
|
||||
user, err := receiver.AuthClient.GetUser(ctx, userID)
|
||||
user, err := receiver.authClient.GetUser(ctx, userID)
|
||||
if err != nil {
|
||||
receiver.logger.Error("failed to get user on <CreateAccountByUserID> of <AccountService>",
|
||||
zap.Error(err.Extract()),
|
||||
@ -165,7 +182,7 @@ func (receiver *Service) CreateAccountByUserID(ctx context.Context, userID strin
|
||||
return nil, err
|
||||
}
|
||||
|
||||
createdAccount, err := receiver.Repository.Insert(ctx, &models.Account{
|
||||
createdAccount, err := receiver.repository.Insert(ctx, &models.Account{
|
||||
UserID: user.ID,
|
||||
Cart: make([]string, 0),
|
||||
Wallet: models.Wallet{
|
||||
@ -187,7 +204,7 @@ func (receiver *Service) CreateAccountByUserID(ctx context.Context, userID strin
|
||||
}
|
||||
|
||||
func (receiver *Service) RemoveAccount(ctx context.Context, userID string) (*models.Account, errors.Error) {
|
||||
account, err := receiver.Repository.Remove(ctx, userID)
|
||||
account, err := receiver.repository.Remove(ctx, userID)
|
||||
if err != nil {
|
||||
receiver.logger.Error("failed to remove account on <RemoveAccount> of <AccountService>",
|
||||
zap.Error(err.Extract()),
|
||||
@ -201,7 +218,7 @@ func (receiver *Service) RemoveAccount(ctx context.Context, userID string) (*mod
|
||||
}
|
||||
|
||||
func (receiver *Service) DeleteAccount(ctx context.Context, userID string) (*models.Account, errors.Error) {
|
||||
account, err := receiver.Repository.Delete(ctx, userID)
|
||||
account, err := receiver.repository.Delete(ctx, userID)
|
||||
if err != nil {
|
||||
receiver.logger.Error("failed to delete account on <DeleteAccount> of <AccountService>",
|
||||
zap.Error(err.Extract()),
|
||||
|
||||
@ -2,6 +2,7 @@ package currency
|
||||
|
||||
import (
|
||||
"context"
|
||||
"log"
|
||||
|
||||
"go.uber.org/zap"
|
||||
"penahub.gitlab.yandexcloud.net/pena-services/customer/internal/errors"
|
||||
@ -24,6 +25,18 @@ type Service struct {
|
||||
}
|
||||
|
||||
func New(deps *Deps) *Service {
|
||||
if deps == nil {
|
||||
log.Panicln("deps is nil on <New (currency service)>")
|
||||
}
|
||||
|
||||
if deps.Logger == nil {
|
||||
log.Panicln("logger is nil on <New (currency service)>")
|
||||
}
|
||||
|
||||
if deps.Repository == nil {
|
||||
log.Panicln("repository is nil on <New (currency service)>")
|
||||
}
|
||||
|
||||
return &Service{
|
||||
logger: deps.Logger,
|
||||
repository: deps.Repository,
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package swagger
|
||||
|
||||
import (
|
||||
"log"
|
||||
"net/http"
|
||||
|
||||
"github.com/labstack/echo/v4"
|
||||
@ -9,7 +10,7 @@ import (
|
||||
//go:generate oapi-codegen --config api.yaml ../../openapi.yaml
|
||||
//go:generate oapi-codegen --config models.yaml ../../openapi.yaml
|
||||
|
||||
type AccountController interface {
|
||||
type accountController interface {
|
||||
RemoveAccount(ctx echo.Context) error
|
||||
GetAccount(ctx echo.Context) error
|
||||
CreateAccount(ctx echo.Context) error
|
||||
@ -18,20 +19,42 @@ type AccountController interface {
|
||||
GetAccounts(ctx echo.Context, params PaginationAccountsParams) error
|
||||
}
|
||||
|
||||
type currencyController interface {
|
||||
GetCurrencies(ctx echo.Context) error
|
||||
PutCurrencies(ctx echo.Context) error
|
||||
}
|
||||
|
||||
type Deps struct {
|
||||
AccountController AccountController
|
||||
AccountController accountController
|
||||
CurrencyController currencyController
|
||||
}
|
||||
|
||||
type API struct {
|
||||
AccountController AccountController
|
||||
AccountController accountController
|
||||
CurrencyController currencyController
|
||||
}
|
||||
|
||||
func New(deps *Deps) *API {
|
||||
if deps == nil {
|
||||
log.Panicln("deps is nil on <New (API)>")
|
||||
}
|
||||
|
||||
if deps.AccountController == nil {
|
||||
log.Panicln("AccountController is nil on <New (API)>")
|
||||
}
|
||||
|
||||
if deps.CurrencyController == nil {
|
||||
log.Panicln("CurrencyController is nil on <New (API)>")
|
||||
}
|
||||
|
||||
return &API{
|
||||
AccountController: deps.AccountController,
|
||||
AccountController: deps.AccountController,
|
||||
CurrencyController: deps.CurrencyController,
|
||||
}
|
||||
}
|
||||
|
||||
// Account
|
||||
|
||||
func (receiver *API) DeleteAccount(ctx echo.Context) error {
|
||||
return receiver.AccountController.RemoveAccount(ctx)
|
||||
}
|
||||
@ -56,7 +79,9 @@ func (receiver *API) PaginationAccounts(ctx echo.Context, params PaginationAccou
|
||||
return receiver.AccountController.GetAccounts(ctx, params)
|
||||
}
|
||||
|
||||
func (receiver *API) RemoveFromCart(ctx echo.Context, params RemoveFromCartParams) error {
|
||||
// Cart
|
||||
|
||||
func (receiver *API) RemoveFromCart(ctx echo.Context, _ RemoveFromCartParams) error {
|
||||
return ctx.String(http.StatusNotImplemented, "method not implemented")
|
||||
}
|
||||
|
||||
@ -68,6 +93,8 @@ func (receiver *API) PayCart(ctx echo.Context) error {
|
||||
return ctx.String(http.StatusNotImplemented, "method not implemented")
|
||||
}
|
||||
|
||||
// Currency
|
||||
|
||||
func (receiver *API) GetCurrencies(ctx echo.Context) error {
|
||||
return ctx.String(http.StatusNotImplemented, "method not implemented")
|
||||
}
|
||||
@ -76,7 +103,9 @@ func (receiver *API) UpdateCurrencies(ctx echo.Context) error {
|
||||
return ctx.String(http.StatusNotImplemented, "method not implemented")
|
||||
}
|
||||
|
||||
func (receiver *API) GetHistory(ctx echo.Context, params GetHistoryParams) error {
|
||||
// History
|
||||
|
||||
func (receiver *API) GetHistory(ctx echo.Context, _ GetHistoryParams) error {
|
||||
return ctx.String(http.StatusNotImplemented, "method not implemented")
|
||||
}
|
||||
|
||||
@ -84,7 +113,9 @@ func (receiver *API) Add2history(ctx echo.Context) error {
|
||||
return ctx.String(http.StatusNotImplemented, "method not implemented")
|
||||
}
|
||||
|
||||
func (receiver *API) RequestMoney(ctx echo.Context, params RequestMoneyParams) error {
|
||||
// Wallet
|
||||
|
||||
func (receiver *API) RequestMoney(ctx echo.Context, _ RequestMoneyParams) error {
|
||||
return ctx.String(http.StatusNotImplemented, "method not implemented")
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user