api.go 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. package api
  2. import (
  3. "github.com/go-playground/locales/en"
  4. ut "github.com/go-playground/universal-translator"
  5. "github.com/go-playground/validator/v10"
  6. lr "github.com/porter-dev/porter/internal/logger"
  7. "github.com/porter-dev/porter/internal/repository"
  8. )
  9. // App represents an API instance with handler methods attached, a DB connection
  10. // and a logger instance
  11. type App struct {
  12. logger *lr.Logger
  13. repo *repository.Repository
  14. validator *validator.Validate
  15. translator *ut.Translator
  16. }
  17. // New returns a new App instance
  18. func New(
  19. logger *lr.Logger,
  20. repo *repository.Repository,
  21. validator *validator.Validate,
  22. ) *App {
  23. // for now, will just support the english translator from the
  24. // validator/translations package
  25. en := en.New()
  26. uni := ut.New(en, en)
  27. trans, _ := uni.GetTranslator("en")
  28. return &App{
  29. logger: logger,
  30. repo: repo,
  31. validator: validator,
  32. translator: &trans,
  33. }
  34. }
  35. // Logger returns the logger instance in use by App
  36. func (app *App) Logger() *lr.Logger {
  37. return app.logger
  38. }