BE-MiniERP/modules/sales/handler/payment_handler.go
2025-06-22 23:23:26 +07:00

60 lines
1.6 KiB
Go

package handler
import (
"BE-MiniERP/database"
"BE-MiniERP/modules/sales/models"
"BE-MiniERP/modules/sales/repository"
"strconv"
"github.com/gofiber/fiber/v2"
)
type PaymentHandler struct {
Repo *repository.PaymentRepository
}
func NewPaymentHandler() *PaymentHandler {
return &PaymentHandler{
Repo: repository.NewPaymentRepository(database.DB),
}
}
func (h *PaymentHandler) GetAll(c *fiber.Ctx) error {
result, err := h.Repo.FindAll()
if err != nil {
return c.Status(500).JSON(fiber.Map{"error": "Failed to fetch payments"})
}
return c.JSON(result)
}
func (h *PaymentHandler) Create(c *fiber.Ctx) error {
var input models.Payment
if err := c.BodyParser(&input); err != nil {
return c.Status(400).JSON(fiber.Map{"error": "Invalid input"})
}
if err := h.Repo.Create(&input); err != nil {
return c.Status(500).JSON(fiber.Map{"error": "Failed to create payment"})
}
return c.JSON(input)
}
func (h *PaymentHandler) Update(c *fiber.Ctx) error {
id, _ := strconv.Atoi(c.Params("id"))
var input models.Payment
if err := c.BodyParser(&input); err != nil {
return c.Status(400).JSON(fiber.Map{"error": "Invalid input"})
}
if err := h.Repo.Update(uint(id), &input); err != nil {
return c.Status(500).JSON(fiber.Map{"error": "Failed to update payment"})
}
return c.JSON(fiber.Map{"message": "Updated"})
}
func (h *PaymentHandler) Delete(c *fiber.Ctx) error {
id, _ := strconv.Atoi(c.Params("id"))
if err := h.Repo.Delete(uint(id)); err != nil {
return c.Status(500).JSON(fiber.Map{"error": "Failed to delete payment"})
}
return c.JSON(fiber.Map{"message": "Deleted"})
}