portfolio/web/handlers/projectPageHandler.go

48 lines
895 B
Go
Raw Normal View History

2024-05-18 13:43:22 +02:00
package handlers
import (
2024-06-24 15:50:57 +02:00
"context"
2024-05-18 13:43:22 +02:00
g "github.com/maragudk/gomponents"
2024-05-18 18:20:37 +02:00
. "github.com/maragudk/gomponents/html"
2024-05-18 13:43:22 +02:00
"net/http"
2024-06-24 15:50:57 +02:00
"portfolio/database/query"
2024-05-18 13:43:22 +02:00
"portfolio/web/components"
)
func ProjectPageHandler(w http.ResponseWriter, r *http.Request) {
2024-05-19 23:56:53 +02:00
err := Page("Project page", createProjectBody(w, r)).Render(w)
2024-05-18 13:43:22 +02:00
if err != nil {
return
}
}
2024-05-18 18:20:37 +02:00
func createProjectBody(w http.ResponseWriter, r *http.Request) g.Node {
2024-05-18 13:43:22 +02:00
2024-06-24 15:50:57 +02:00
projects, err := query.GetProjects(context.Background())
if err != nil {
return nil
}
2024-05-18 18:20:37 +02:00
return Body(
components.Edit(),
2024-06-24 15:50:57 +02:00
components.ProjectList(projects),
2024-05-18 18:20:37 +02:00
)
2024-05-18 13:43:22 +02:00
}
func CreateProjectEditBody(w http.ResponseWriter, r *http.Request) {
projects, err := query.GetProjects(context.Background())
if err != nil {
return
}
w.WriteHeader(http.StatusOK)
Body(
components.EditProjectList(projects),
components.Save(), //todo add new data to request
).Render(w)
}