22package handlers
33
44import (
5+ "fmt"
56 "net/http"
67
78 "github.com/co-browser/agent-browser/internal/log"
@@ -19,8 +20,9 @@ func NewUIHandler(logger log.Logger) http.Handler {
1920 h := & UIHandler {log : logger }
2021 mux := http .NewServeMux ()
2122
22- mux .HandleFunc ("/ui" , h .serveIndex )
23- mux .HandleFunc ("/ui/add" , h .serveAddPage )
23+ mux .HandleFunc ("/" , h .serveIndex )
24+ mux .HandleFunc ("/add" , h .serveAddPage )
25+ mux .HandleFunc ("/success" , h .serveSuccessPage )
2426
2527 return mux
2628}
@@ -43,10 +45,34 @@ func (h *UIHandler) serveIndex(w http.ResponseWriter, r *http.Request) {
4345 },
4446 },
4547 }).Render (r .Context (), w )
48+
4649 if err != nil {
4750 // Use the injected logger
4851 h .log .Error ().Err (err ).Msg ("failed to render index page template" )
4952 http .Error (w , "failed to render page" , http .StatusInternalServerError )
5053 // Removed old comment: // Consider logging the error as well: log.Printf(\"Error rendering template: %v\", err)
5154 }
5255}
56+
57+ func (h * UIHandler ) serveAddPage (w http.ResponseWriter , r * http.Request ) {
58+ err := templates .AddPage (templates.AddPageProps {}).Render (r .Context (), w )
59+
60+ if err != nil {
61+ h .log .Error ().Err (err ).Msg ("failed to render add page template" )
62+ http .Error (w , "failed to render page" , http .StatusInternalServerError )
63+ }
64+ }
65+
66+ func (h * UIHandler ) serveSuccessPage (w http.ResponseWriter , r * http.Request ) {
67+ name := r .URL .Query ().Get ("name" )
68+ ip := r .URL .Query ().Get ("ip" )
69+
70+ text := fmt .Sprintf ("Successfully added server '%s' with IP %s." , name , ip )
71+
72+ err := templates .SuccessPage (templates.SuccessPageProps {Text : text }).Render (r .Context (), w )
73+
74+ if err != nil {
75+ h .log .Error ().Err (err ).Msg ("failed to render success page template" )
76+ http .Error (w , "failed to render page" , http .StatusInternalServerError )
77+ }
78+ }
0 commit comments