diff --git a/adapters/secondary/gateways/web/templates/posts.html b/adapters/secondary/gateways/web/templates/posts.html
index 2db5db6..3667b4e 100644
--- a/adapters/secondary/gateways/web/templates/posts.html
+++ b/adapters/secondary/gateways/web/templates/posts.html
@@ -39,7 +39,7 @@
{{ $post.CreatedAt }} |
{{ $post.UpdatedAt }} |
-
+
diff --git a/api/page.go b/api/page.go
index e6f43cd..acf667f 100644
--- a/api/page.go
+++ b/api/page.go
@@ -123,9 +123,9 @@ func NewPageRouter() http.Handler {
r.Use(IsVerifiedMiddleware)
r.Get("/home", GetHomePage)
r.Get("/post", GetPostsPage)
- r.Get("/post/{name}/edit", GetPostEditPage)
+ r.Get("/post/{id}/edit", GetPostEditPage)
+ r.Post("/post/{id}/edit", PostPostEditPage)
r.Get("/post/{id}/delete", GetPostDeletePage)
- r.Post("/post/{name}/edit", PostPostEditPage)
r.Get("/post/create", GetPostCreatePage)
r.Post("/post/create", PostPostCreatePage)
})
diff --git a/api/pagePostCreate.go b/api/pagePostCreate.go
index d8d12d8..8697b43 100644
--- a/api/pagePostCreate.go
+++ b/api/pagePostCreate.go
@@ -5,6 +5,7 @@ import (
"html/template"
"net/http"
"regexp"
+ "strconv"
)
type PostCreatePageError struct {
@@ -47,7 +48,7 @@ func PostPostCreatePage(w http.ResponseWriter, r *http.Request) {
return
}
- http.Redirect(w, r, "/post/"+post.Title+"/edit", http.StatusSeeOther)
+ http.Redirect(w, r, "/post/"+strconv.Itoa(int(post.ID))+"/edit", http.StatusSeeOther)
}
func GetPostCreatePage(w http.ResponseWriter, _ *http.Request) {
diff --git a/api/pagePostEdit.go b/api/pagePostEdit.go
index 4c885e3..a706756 100644
--- a/api/pagePostEdit.go
+++ b/api/pagePostEdit.go
@@ -4,7 +4,7 @@ import (
"github.com/go-chi/chi/v5"
"html/template"
"net/http"
- "net/url"
+ "strconv"
)
type PostEditPageAlert struct {
@@ -24,8 +24,9 @@ func getPostEditPageTemplate(body string, alert PostEditPageAlert) []byte {
}
func PostPostEditPage(w http.ResponseWriter, r *http.Request) {
- postName := chi.URLParam(r, "name")
- if len(postName) == 0 {
+ postID := chi.URLParam(r, "id")
+ postIDint, err := strconv.Atoi(postID)
+ if err != nil {
_, _ = w.Write(getPostEditPageTemplate("", PostEditPageAlert{
IsError: true,
Message: "Could not find the requested post.",
@@ -36,9 +37,8 @@ func PostPostEditPage(w http.ResponseWriter, r *http.Request) {
_ = r.ParseForm()
postBody := r.FormValue("postBody")
- parsedName, _ := url.PathUnescape(postName)
- post, _ := Container.GetPostUseCase.GetPostByName(parsedName)
- err := Container.UpdatePostUseCase.UpdateBody(post.ID, postBody)
+ post, _ := Container.GetPostUseCase.GetPost(uint32(postIDint))
+ err = Container.UpdatePostUseCase.UpdateBody(post.ID, postBody)
if err != nil {
_, _ = w.Write(getPostEditPageTemplate(postBody, PostEditPageAlert{
IsError: true,
@@ -54,13 +54,15 @@ func PostPostEditPage(w http.ResponseWriter, r *http.Request) {
}
func GetPostEditPage(w http.ResponseWriter, r *http.Request) {
- postName := chi.URLParam(r, "name")
- if len(postName) == 0 {
+ postID := chi.URLParam(r, "id")
+ postIDint, err := strconv.Atoi(postID)
+ if err != nil {
w.WriteHeader(http.StatusBadRequest)
return
}
- parsedName, _ := url.PathUnescape(postName)
- post, _ := Container.GetPostUseCase.GetPostByName(parsedName)
+
+ post, _ := Container.GetPostUseCase.GetPost(uint32(postIDint))
+
_, _ = w.Write(getPostEditPageTemplate(post.Body, PostEditPageAlert{
IsError: false,
Message: "",
|