package currency_client import ( "github.com/gofiber/fiber/v2" "go.uber.org/zap" "gitea.pena/PenaSide/customer/internal/errors" "gitea.pena/PenaSide/customer/internal/interface/controller/http" "gitea.pena/PenaSide/customer/internal/interface/repository" "gitea.pena/PenaSide/customer/internal/models" ) type Deps struct { CurrencyRepo *repository.CurrencyRepository MiddleWare *http.MiddleWare Logger *zap.Logger } type CurrencyController struct { currencyRepo *repository.CurrencyRepository middleWare *http.MiddleWare logger *zap.Logger } func NewCurrencyController(deps Deps) *CurrencyController { return &CurrencyController{ currencyRepo: deps.CurrencyRepo, middleWare: deps.MiddleWare, logger: deps.Logger, } } func (receiver *CurrencyController) Get(ctx *fiber.Ctx) error { currencyList, err := receiver.currencyRepo.FindCurrenciesList(ctx.Context(), models.DefaultCurrencyListName) if err != nil && err.Type() != errors.ErrNotFound { return receiver.middleWare.ErrorOld(ctx, err) } if err != nil && err.Type() == errors.ErrNotFound { return ctx.Status(fiber.StatusOK).JSON([]string{}) } return ctx.Status(fiber.StatusOK).JSON(currencyList) }