customer/internal/swagger/api.go

165 lines
4.3 KiB
Go
Raw Normal View History

2023-05-17 03:39:29 +00:00
package swagger
2023-05-17 20:27:09 +00:00
import (
2023-05-19 04:50:40 +00:00
"log"
2023-05-17 20:27:09 +00:00
"net/http"
"github.com/labstack/echo/v4"
)
2023-05-17 03:39:29 +00:00
//go:generate oapi-codegen --config api.yaml ../../openapi.yaml
//go:generate oapi-codegen --config models.yaml ../../openapi.yaml
2023-05-17 20:27:09 +00:00
2023-05-19 04:50:40 +00:00
type accountController interface {
2023-05-17 20:27:09 +00:00
RemoveAccount(ctx echo.Context) error
GetAccount(ctx echo.Context) error
CreateAccount(ctx echo.Context) error
RemoveDirectAccount(ctx echo.Context, userID string) error
GetDirectAccount(ctx echo.Context, userID string) error
2023-05-19 06:57:36 +00:00
GetAccounts(echo.Context, PaginationAccountsParams) error
2023-05-17 20:27:09 +00:00
}
2023-05-19 04:50:40 +00:00
type currencyController interface {
GetCurrencies(ctx echo.Context) error
PutCurrencies(ctx echo.Context) error
}
2023-05-19 06:57:36 +00:00
type cartController interface {
Remove(echo.Context, RemoveFromCartParams) error
2023-05-19 09:08:15 +00:00
Add(echo.Context, Add2cartParams) error
2023-05-19 06:57:36 +00:00
}
2023-05-22 12:43:15 +00:00
type walletController interface {
ChangeCurrency(ctx echo.Context) error
PutMoney(ctx echo.Context) error
}
2023-05-23 10:52:27 +00:00
type historyController interface {
CreateHistory(ctx echo.Context) error
GetHistoryList(ctx echo.Context, params GetHistoryParams) error
}
2023-05-17 20:27:09 +00:00
type Deps struct {
2023-05-19 04:50:40 +00:00
AccountController accountController
CurrencyController currencyController
2023-05-19 06:57:36 +00:00
CartController cartController
2023-05-22 12:43:15 +00:00
WalletController walletController
2023-05-23 10:52:27 +00:00
HistoryController historyController
2023-05-17 20:27:09 +00:00
}
type API struct {
2023-05-19 06:57:36 +00:00
accountController accountController
currencyController currencyController
cartController cartController
2023-05-22 12:43:15 +00:00
walletController walletController
2023-05-23 10:52:27 +00:00
historyController historyController
2023-05-17 20:27:09 +00:00
}
func New(deps *Deps) *API {
2023-05-19 04:50:40 +00:00
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 {
2023-05-19 06:57:36 +00:00
log.Panicln("currencyController is nil on <New (API)>")
}
if deps.CartController == nil {
log.Panicln("cartController is nil on <New (API)>")
2023-05-19 04:50:40 +00:00
}
2023-05-22 12:43:15 +00:00
if deps.WalletController == nil {
log.Panicln("walletController is nil on <New (API)>")
}
2023-05-23 10:52:27 +00:00
if deps.HistoryController == nil {
log.Panicln("historyController is nil on <New (API)>")
}
2023-05-17 20:27:09 +00:00
return &API{
2023-05-19 06:57:36 +00:00
accountController: deps.AccountController,
currencyController: deps.CurrencyController,
cartController: deps.CartController,
2023-05-22 12:43:15 +00:00
walletController: deps.WalletController,
2023-05-23 10:52:27 +00:00
historyController: deps.HistoryController,
2023-05-17 20:27:09 +00:00
}
}
2023-05-19 04:50:40 +00:00
// Account
2023-05-17 20:27:09 +00:00
func (receiver *API) DeleteAccount(ctx echo.Context) error {
2023-05-19 06:57:36 +00:00
return receiver.accountController.RemoveAccount(ctx)
2023-05-17 20:27:09 +00:00
}
func (receiver *API) GetAccount(ctx echo.Context) error {
2023-05-19 06:57:36 +00:00
return receiver.accountController.GetAccount(ctx)
2023-05-17 20:27:09 +00:00
}
func (receiver *API) AddAccount(ctx echo.Context) error {
2023-05-19 06:57:36 +00:00
return receiver.accountController.CreateAccount(ctx)
2023-05-17 20:27:09 +00:00
}
func (receiver *API) DeleteDirectAccount(ctx echo.Context, userID string) error {
2023-05-19 06:57:36 +00:00
return receiver.accountController.RemoveDirectAccount(ctx, userID)
2023-05-17 20:27:09 +00:00
}
func (receiver *API) GetDirectAccount(ctx echo.Context, userID string) error {
2023-05-19 06:57:36 +00:00
return receiver.accountController.GetDirectAccount(ctx, userID)
2023-05-17 20:27:09 +00:00
}
func (receiver *API) PaginationAccounts(ctx echo.Context, params PaginationAccountsParams) error {
2023-05-19 06:57:36 +00:00
return receiver.accountController.GetAccounts(ctx, params)
2023-05-17 20:27:09 +00:00
}
2023-05-19 04:50:40 +00:00
// Cart
2023-05-19 06:57:36 +00:00
func (receiver *API) RemoveFromCart(ctx echo.Context, params RemoveFromCartParams) error {
return receiver.cartController.Remove(ctx, params)
2023-05-17 20:27:09 +00:00
}
2023-05-19 09:08:15 +00:00
func (receiver *API) Add2cart(ctx echo.Context, params Add2cartParams) error {
return receiver.cartController.Add(ctx, params)
2023-05-17 20:27:09 +00:00
}
func (receiver *API) PayCart(ctx echo.Context) error {
return ctx.String(http.StatusNotImplemented, "method not implemented")
}
2023-05-19 04:50:40 +00:00
// Currency
2023-05-17 20:27:09 +00:00
func (receiver *API) GetCurrencies(ctx echo.Context) error {
2023-05-19 06:57:36 +00:00
return receiver.currencyController.GetCurrencies(ctx)
2023-05-17 20:27:09 +00:00
}
func (receiver *API) UpdateCurrencies(ctx echo.Context) error {
2023-05-19 06:57:36 +00:00
return receiver.currencyController.PutCurrencies(ctx)
2023-05-17 20:27:09 +00:00
}
2023-05-19 04:50:40 +00:00
// History
2023-05-23 10:52:27 +00:00
func (receiver *API) GetHistory(ctx echo.Context, params GetHistoryParams) error {
return receiver.historyController.GetHistoryList(ctx, params)
2023-05-17 20:27:09 +00:00
}
func (receiver *API) Add2history(ctx echo.Context) error {
2023-05-23 10:52:27 +00:00
return receiver.historyController.CreateHistory(ctx)
2023-05-17 20:27:09 +00:00
}
2023-05-19 04:50:40 +00:00
// Wallet
func (receiver *API) RequestMoney(ctx echo.Context, _ RequestMoneyParams) error {
2023-05-17 20:27:09 +00:00
return ctx.String(http.StatusNotImplemented, "method not implemented")
}
func (receiver *API) ChangeCurrency(ctx echo.Context) error {
return ctx.String(http.StatusNotImplemented, "method not implemented")
}
func (receiver *API) PutMoney(ctx echo.Context) error {
2023-05-22 12:43:15 +00:00
return receiver.walletController.PutMoney(ctx)
2023-05-17 20:27:09 +00:00
}