From ce61d3db96e0539c8df1886ac635e7e85dbde31f Mon Sep 17 00:00:00 2001 From: roerick Date: Fri, 17 Oct 2025 15:32:19 -0600 Subject: initial commit, models not working --- handlers/handlers.go | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 handlers/handlers.go (limited to 'handlers') diff --git a/handlers/handlers.go b/handlers/handlers.go new file mode 100644 index 0000000..777ae83 --- /dev/null +++ b/handlers/handlers.go @@ -0,0 +1,55 @@ +package handlers + +import ( + "net/http" + "fmt" + "text/template" + "github.com/gorilla/mux" + "gorm.io/driver/postgres" + "gorm.io/gorm" + "wyo.town/netzah/models" +) + +// CreateBlog displays the blog creation form +func CreateBlog(w http.ResponseWriter, r *http.Request) { + tmpl := template.Must(template.ParseFiles("templates/create_blog.html")) + tmpl.Execute(w, nil) +} + +// StoreBlog handles the form submission for creating a blog +func StoreBlog(w http.ResponseWriter, r *http.Request) { + dsn := "host=localhost user=_postgresql password=postGRES dbname=netzah port=5432 sslmode=disable TimeZone=US/Mountain client_encoding=UTF8" + db, err := gorm.Open(postgres.Open(dsn), &gorm.Config{}) + if err != nil { + panic("failed to connect to database") + } + + + if r.Method == http.MethodPost { + var blog models.Blog + blog.Title = r.FormValue("title") + blog.Content = r.FormValue("content") + db.Create(&blog) + http.Redirect(w, r, "/blogs/"+fmt.Sprint(blog.ID), http.StatusSeeOther) + } +} + +// GetBlog retrieves and displays a blog by ID +func GetBlog(w http.ResponseWriter, r *http.Request) { + dsn := "host=localhost user=_postgresql password=postGRES dbname=netzah port=5432 sslmode=disable TimeZone=US/Mountain client_encoding=UTF8" + db, err := gorm.Open(postgres.Open(dsn), &gorm.Config{}) + + if err != nil { + panic("failed to connect to database") + } + + id := mux.Vars(r)["id"] + var blog models.Blog + if err := db.First(&blog, id).Error; err != nil { + http.NotFound(w, r) + return + } + tmpl := template.Must(template.ParseFiles("templates/blog.html")) + tmpl.Execute(w, blog) +} + -- cgit v1.2.3