98 lines
3.3 KiB
Go
98 lines
3.3 KiB
Go
package restricted
|
|
|
|
import (
|
|
"strconv"
|
|
|
|
"git.ma-al.com/goc_daniel/b2b/app/config"
|
|
"git.ma-al.com/goc_daniel/b2b/app/model"
|
|
"git.ma-al.com/goc_daniel/b2b/app/service/currencyService"
|
|
"git.ma-al.com/goc_daniel/b2b/app/utils/i18n"
|
|
"git.ma-al.com/goc_daniel/b2b/app/utils/nullable"
|
|
"git.ma-al.com/goc_daniel/b2b/app/utils/response"
|
|
"git.ma-al.com/goc_daniel/b2b/app/utils/responseErrors"
|
|
|
|
"github.com/gofiber/fiber/v3"
|
|
)
|
|
|
|
type CurrencyHandler struct {
|
|
CurrencyService *currencyService.CurrencyService
|
|
config *config.Config
|
|
}
|
|
|
|
func NewCurrencyHandler() *CurrencyHandler {
|
|
currencyService := currencyService.New()
|
|
return &CurrencyHandler{
|
|
CurrencyService: currencyService,
|
|
config: config.Get(),
|
|
}
|
|
}
|
|
|
|
func CurrencyHandlerRoutes(r fiber.Router) fiber.Router {
|
|
handler := NewCurrencyHandler()
|
|
|
|
r.Post("/currency-rate", handler.PostCurrencyRate)
|
|
r.Get("/currency-rate/:id", handler.GetCurrencyRate)
|
|
// r.Get("/currencies", handler.GetCurrencyRates)
|
|
return r
|
|
}
|
|
|
|
func (h *CurrencyHandler) PostCurrencyRate(c fiber.Ctx) error {
|
|
var currencyRate model.CurrencyRate
|
|
if err := c.Bind().Body(¤cyRate); err != nil {
|
|
return c.Status(responseErrors.GetErrorStatus(responseErrors.ErrJSONBody)).
|
|
JSON(response.Make(nullable.GetNil(""), 0, responseErrors.GetErrorCode(c, responseErrors.ErrJSONBody)))
|
|
}
|
|
|
|
err := h.CurrencyService.CreateCurrencyRate(¤cyRate)
|
|
if err != nil {
|
|
return c.Status(responseErrors.GetErrorStatus(err)).
|
|
JSON(response.Make(nullable.GetNil(""), 0, responseErrors.GetErrorCode(c, err)))
|
|
}
|
|
|
|
return c.JSON(response.Make(nullable.GetNil(""), 1, i18n.T_(c, response.Message_OK)))
|
|
}
|
|
|
|
func (h *CurrencyHandler) GetCurrencyRate(c fiber.Ctx) error {
|
|
idStr := c.Params("id")
|
|
id, err := strconv.Atoi(idStr)
|
|
if err != nil {
|
|
return c.Status(responseErrors.GetErrorStatus(err)).JSON(response.Make(nullable.GetNil(""), 0, responseErrors.GetErrorCode(c, err)))
|
|
|
|
}
|
|
|
|
currency, err := h.CurrencyService.GetCurrency(uint(id))
|
|
if err != nil {
|
|
return c.Status(responseErrors.GetErrorStatus(err)).JSON(response.Make(nullable.GetNil(""), 0, responseErrors.GetErrorCode(c, err)))
|
|
}
|
|
|
|
// err = h.CurrencyService.GetCurrencyRate(userID, uint(productID), uint(productShopID), uint(productLangID), updates)
|
|
// if err != nil {
|
|
// return c.Status(responseErrors.GetErrorStatus(err)).
|
|
// JSON(response.Make(nullable.GetNil(""), 0, responseErrors.GetErrorCode(c, err)))
|
|
// }
|
|
|
|
return c.JSON(response.Make(currency, 0, i18n.T_(c, response.Message_OK)))
|
|
}
|
|
|
|
func (h *CurrencyHandler) GetCurrencyRates(c fiber.Ctx) error {
|
|
idStr := c.Params("id")
|
|
id, err := strconv.Atoi(idStr)
|
|
if err != nil {
|
|
return c.Status(responseErrors.GetErrorStatus(err)).JSON(response.Make(nullable.GetNil(""), 0, responseErrors.GetErrorCode(c, err)))
|
|
|
|
}
|
|
|
|
currency, err := h.CurrencyService.GetCurrency(uint(id))
|
|
if err != nil {
|
|
return c.Status(responseErrors.GetErrorStatus(err)).JSON(response.Make(nullable.GetNil(""), 0, responseErrors.GetErrorCode(c, err)))
|
|
}
|
|
|
|
// err = h.CurrencyService.GetCurrencyRate(userID, uint(productID), uint(productShopID), uint(productLangID), updates)
|
|
// if err != nil {
|
|
// return c.Status(responseErrors.GetErrorStatus(err)).
|
|
// JSON(response.Make(nullable.GetNil(""), 0, responseErrors.GetErrorCode(c, err)))
|
|
// }
|
|
|
|
return c.JSON(response.Make(currency, 0, i18n.T_(c, response.Message_OK)))
|
|
}
|