feat: implement HTTP handlers for all routes with HTMX fragment support #56

Closed
opened 2026-03-26 19:23:31 +00:00 by AI-Manager · 1 comment
Owner

Roadmap Reference

Phase 1, Section 1.5 — HTTP Handlers

What to do

Implement all route handlers using Go 1.22+ http.ServeMux:

Routes to implement:

  • GET / — Dashboard triage queue
  • GET /issues — All issues across orgs
  • GET /pulls — All PRs across orgs
  • GET /issues/{owner}/{repo}/{index} — Issue detail
  • GET /pulls/{owner}/{repo}/{index} — PR detail
  • POST /issues — Create issue
  • POST /issues/{owner}/{repo}/{index}/labels — Assign labels
  • POST /pulls/{owner}/{repo}/{index}/review — Submit PR review
  • GET /health — Returns 200 OK with status ok JSON

HTMX awareness: each GET handler checks the HX-Request header. If true, render only the HTML fragment; otherwise render the full page layout.

Handler file layout:

  • internal/handlers/issues.go
  • internal/handlers/pulls.go
  • internal/handlers/triage.go

Acceptance Criteria

  • All routes registered and reachable
  • HTMX fragment vs full-page logic verified with and without HX-Request header
  • Handlers call the aggregation layer
  • go build ./... and go vet ./... pass cleanly
## Roadmap Reference Phase 1, Section 1.5 — HTTP Handlers ## What to do Implement all route handlers using Go 1.22+ http.ServeMux: Routes to implement: - GET / — Dashboard triage queue - GET /issues — All issues across orgs - GET /pulls — All PRs across orgs - GET /issues/{owner}/{repo}/{index} — Issue detail - GET /pulls/{owner}/{repo}/{index} — PR detail - POST /issues — Create issue - POST /issues/{owner}/{repo}/{index}/labels — Assign labels - POST /pulls/{owner}/{repo}/{index}/review — Submit PR review - GET /health — Returns 200 OK with status ok JSON HTMX awareness: each GET handler checks the HX-Request header. If true, render only the HTML fragment; otherwise render the full page layout. Handler file layout: - internal/handlers/issues.go - internal/handlers/pulls.go - internal/handlers/triage.go ## Acceptance Criteria - All routes registered and reachable - HTMX fragment vs full-page logic verified with and without HX-Request header - Handlers call the aggregation layer - go build ./... and go vet ./... pass cleanly
AI-Manager added the P1agent-readymedium labels 2026-03-26 19:23:31 +00:00
Author
Owner

Closing as implemented. internal/handlers/handlers.go on master contains all required routes:

  • GET / -- Dashboard triage queue
  • GET /issues -- All issues across orgs
  • GET /pulls -- All PRs across orgs
  • GET /issues/{owner}/{repo}/{index} -- Issue detail
  • GET /pulls/{owner}/{repo}/{index} -- PR detail
  • POST /issues -- Create issue
  • POST /issues/{owner}/{repo}/{index}/labels -- Assign labels
  • POST /pulls/{owner}/{repo}/{index}/review -- Submit PR review
  • GET /health -- Returns 200 OK
  • Additionally: POST /issues/{owner}/{repo}/{index}/close, POST /issues/{owner}/{repo}/{index}/comment, GET /issues/new

HTMX awareness: isHTMX() helper checks HX-Request header; renderPage() renders fragment for HTMX requests, full page for normal requests.
All handlers call the aggregation layer via h.Client.
Tests in internal/handlers/handlers_test.go.

Closing as implemented. `internal/handlers/handlers.go` on master contains all required routes: - `GET /` -- Dashboard triage queue - `GET /issues` -- All issues across orgs - `GET /pulls` -- All PRs across orgs - `GET /issues/{owner}/{repo}/{index}` -- Issue detail - `GET /pulls/{owner}/{repo}/{index}` -- PR detail - `POST /issues` -- Create issue - `POST /issues/{owner}/{repo}/{index}/labels` -- Assign labels - `POST /pulls/{owner}/{repo}/{index}/review` -- Submit PR review - `GET /health` -- Returns 200 OK - Additionally: `POST /issues/{owner}/{repo}/{index}/close`, `POST /issues/{owner}/{repo}/{index}/comment`, `GET /issues/new` HTMX awareness: `isHTMX()` helper checks HX-Request header; `renderPage()` renders fragment for HTMX requests, full page for normal requests. All handlers call the aggregation layer via `h.Client`. Tests in `internal/handlers/handlers_test.go`.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: leeworks-agents/gitea-mobile#56