Files
LazyPM/pkg/web/handler/index.go

39 lines
870 B
Go

package handler
import (
"net/http"
"strings"
"github.com/LazyBachelor/LazyPM/internal/models"
"github.com/LazyBachelor/LazyPM/pkg/web/components"
"github.com/LazyBachelor/LazyPM/pkg/web/routes"
)
func IndexHandler(w http.ResponseWriter, r *http.Request) {
app := App(r)
hx := HTMX(r)
query := strings.TrimSpace(r.URL.Query().Get("q"))
filter := models.IssueFilter{Limit: 100}
issuesPtr, err := app.Issues.SearchIssues(r.Context(), query, filter)
if err != nil {
http.Error(w, "failed to retrieve issues", http.StatusInternalServerError)
return
}
issues := models.IssuesPtrToIssues(issuesPtr)
props := routes.IndexProps{
IssueTable: components.IssueTableProps{
Issues: issues,
},
SearchQuery: query,
}
if hx.IsHxRequest() {
routes.IndexContent(props).Render(r.Context(), w)
return
}
routes.Index(props).Render(r.Context(), w)
}