From 107ff81e9e12bb87dd22ee85fdff0cee93b88356 Mon Sep 17 00:00:00 2001 From: gom-by Date: Wed, 29 Jan 2025 18:31:06 +0100 Subject: [PATCH] blogs api --- backend/api/blogs/{blogs.go => blog.go} | 2 +- backend/api/blogs/delete.go | 32 +++++++++++++ backend/api/blogs/delete_blog.go | 0 backend/api/blogs/{new_blog.go => new.go} | 0 backend/api/blogs/update.go | 53 +++++++++++++++++++++ backend/api/events/update.go | 11 ----- backend/api/get_blog.go | 58 ----------------------- 7 files changed, 86 insertions(+), 70 deletions(-) rename backend/api/blogs/{blogs.go => blog.go} (94%) create mode 100644 backend/api/blogs/delete.go delete mode 100644 backend/api/blogs/delete_blog.go rename backend/api/blogs/{new_blog.go => new.go} (100%) create mode 100644 backend/api/blogs/update.go delete mode 100644 backend/api/get_blog.go diff --git a/backend/api/blogs/blogs.go b/backend/api/blogs/blog.go similarity index 94% rename from backend/api/blogs/blogs.go rename to backend/api/blogs/blog.go index 65a8dfe..b76fe32 100644 --- a/backend/api/blogs/blogs.go +++ b/backend/api/blogs/blog.go @@ -35,7 +35,7 @@ func HandleBlog(w http.ResponseWriter, r *http.Request) { return } -func HandleGetBlogs(w http.ResponseWriter, r *http.Request) { +func HandleBlogs(w http.ResponseWriter, r *http.Request) { var blog []core.Blog count, err := core.DB.NewSelect(). Model(&blog). diff --git a/backend/api/blogs/delete.go b/backend/api/blogs/delete.go new file mode 100644 index 0000000..aa1a2c2 --- /dev/null +++ b/backend/api/blogs/delete.go @@ -0,0 +1,32 @@ +package blogs + +import ( + "context" + "log" + "net/http" + + "fr.latosa-escrima/api/core" +) + +func HandleDelete(w http.ResponseWriter, r *http.Request) { + uuid := r.PathValue("blog_uuid") + var blog core.Blog + res, err := core.DB.NewDelete(). + Model(&blog). + Where("blog_id = ?", uuid). + Returning("*"). + Exec(context.Background()) + if err != nil { + core.JSONError{ + Status: core.Error, + Message: err.Error(), + }.Respond(w, http.StatusInternalServerError) + return + } + log.Println(res) + + core.JSONSuccess{ + Status: core.Success, + Message: "Blog deleted.", + }.Respond(w, http.StatusOK) +} diff --git a/backend/api/blogs/delete_blog.go b/backend/api/blogs/delete_blog.go deleted file mode 100644 index e69de29..0000000 diff --git a/backend/api/blogs/new_blog.go b/backend/api/blogs/new.go similarity index 100% rename from backend/api/blogs/new_blog.go rename to backend/api/blogs/new.go diff --git a/backend/api/blogs/update.go b/backend/api/blogs/update.go new file mode 100644 index 0000000..ea7923b --- /dev/null +++ b/backend/api/blogs/update.go @@ -0,0 +1,53 @@ +package blogs + +import ( + "context" + "encoding/json" + "log" + "net/http" + + "fr.latosa-escrima/api/core" + "github.com/google/uuid" +) + +func HandleUpdate(w http.ResponseWriter, r *http.Request) { + var blog core.Blog + err := json.NewDecoder(r.Body).Decode(&blog) + if err != nil { + core.JSONError{ + Status: core.Error, + Message: err.Error(), + }.Respond(w, http.StatusBadRequest) + return + } + + blog_uuid := r.PathValue("blog_uuid") + blog.BlogID, err = uuid.Parse(blog_uuid) + if err != nil { + core.JSONError{ + Status: core.Error, + Message: err.Error(), + }.Respond(w, http.StatusBadRequest) + return + } + + log.Println(blog) + _, err = core.DB.NewUpdate(). + Model(&blog). + OmitZero(). + WherePK(). + Exec(context.Background()) + if err != nil { + core.JSONError{ + Status: core.Error, + Message: "Blog not found.", + }.Respond(w, http.StatusInternalServerError) + return + } + + core.JSONSuccess{ + Status: core.Success, + Message: "Blog updated", + Data: blog, + }.Respond(w, http.StatusOK) +} diff --git a/backend/api/events/update.go b/backend/api/events/update.go index 58dd47e..496f818 100644 --- a/backend/api/events/update.go +++ b/backend/api/events/update.go @@ -32,17 +32,6 @@ func HandleUpdate(w http.ResponseWriter, r *http.Request) { } log.Println(event) - - // val := reflect.ValueOf(event) - // typ := val.Type() - // - // for i := 0; i < val.NumField(); i++ { - // field := val.Field(i) - // fieldType := typ.Field(i) - // fmt.Printf("Field Name: %s, Field Value: %v\n", fieldType.Name, field.Interface()) - // if fiel - // } - _, err = core.DB.NewUpdate(). Model(&event). OmitZero(). diff --git a/backend/api/get_blog.go b/backend/api/get_blog.go deleted file mode 100644 index 65a8dfe..0000000 --- a/backend/api/get_blog.go +++ /dev/null @@ -1,58 +0,0 @@ -package blogs - -import ( - "context" - "fmt" - "net/http" - - core "fr.latosa-escrima/api/core" -) - -func HandleBlog(w http.ResponseWriter, r *http.Request) { - w.Header().Set("Content-Type", "application/json") - - blog_uuid := r.PathValue("uuid") - - var blog core.Blog - _, err := core.DB.NewSelect(). - Model(&blog). - Where("blog_id = ?", blog_uuid). - Relation("Author"). - ScanAndCount(context.Background()) - if err != nil { - core.JSONError{ - Status: core.Error, - Message: err.Error(), - }.Respond(w, http.StatusNotAcceptable) - return - } - - core.JSONSuccess{ - Status: core.Success, - Message: "Status OK", - Data: blog, - }.Respond(w, http.StatusOK) - return -} - -func HandleGetBlogs(w http.ResponseWriter, r *http.Request) { - var blog []core.Blog - count, err := core.DB.NewSelect(). - Model(&blog). - Relation("Author"). - ScanAndCount(context.Background()) - if err != nil { - core.JSONError{ - Status: core.Error, - Message: err.Error(), - }.Respond(w, http.StatusNotAcceptable) - return - } - - core.JSONSuccess{ - Status: core.Success, - Message: fmt.Sprint("%d blogs objects sent", count), - Data: blog, - }.Respond(w, http.StatusOK) - return -}