Files
billit/internal/handler/home.go
2025-12-06 15:31:18 +05:30

40 lines
979 B
Go

package handler
import "billit/internal/models"
import "billit/internal/view"
import (
"billit/internal/database"
"github.com/labstack/echo/v4"
)
// HomeHandlers holds db reference for home page operations
type HomeHandlers struct {
db database.Service
}
// NewHomeHandlers creates handlers with db access
func NewHomeHandlers(db database.Service) *HomeHandlers {
return &HomeHandlers{db: db}
}
// HomePageHandler renders the home page with recent data
func (h *HomeHandlers) HomePageHandler(c echo.Context) error {
userID := getUserID(c)
userEmail, _ := c.Get("user_email").(string)
// Get recent products (last 5)
recentProducts, err := h.db.GetRecentProducts(userID, 5)
if err != nil {
recentProducts = []models.Product{}
}
// Get recent invoices (last 5)
recentInvoices, err := h.db.GetRecentInvoices(userID, 5)
if err != nil {
recentInvoices = []models.Invoice{}
}
return view.Render(c, view.HomePage(userEmail, recentProducts, recentInvoices))
}