From d27c257f6c3d1535d27bb0312403d583782865e1 Mon Sep 17 00:00:00 2001 From: gom-by Date: Tue, 28 Jan 2025 18:23:42 +0100 Subject: [PATCH] blogs api start --- backend/api/delete_blog.go | 0 backend/api/{blogs.go => get_blog.go} | 25 +++++++++++++++++++++++-- backend/api/new_blog.go | 17 +++-------------- 3 files changed, 26 insertions(+), 16 deletions(-) create mode 100644 backend/api/delete_blog.go rename backend/api/{blogs.go => get_blog.go} (54%) diff --git a/backend/api/delete_blog.go b/backend/api/delete_blog.go new file mode 100644 index 0000000..e69de29 diff --git a/backend/api/blogs.go b/backend/api/get_blog.go similarity index 54% rename from backend/api/blogs.go rename to backend/api/get_blog.go index c5cd695..540ec74 100644 --- a/backend/api/blogs.go +++ b/backend/api/get_blog.go @@ -2,14 +2,13 @@ package api import ( "context" + "fmt" "net/http" core "fr.latosa-escrima/api/core" ) func HandleGetBlog(w http.ResponseWriter, r *http.Request) { - w.Header().Set("Content-Type", "application/json") - blog_uuid := r.PathValue("uuid") var blog core.Blog @@ -33,3 +32,25 @@ func HandleGetBlog(w http.ResponseWriter, r *http.Request) { }.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 +} diff --git a/backend/api/new_blog.go b/backend/api/new_blog.go index de12e4d..78d4d57 100644 --- a/backend/api/new_blog.go +++ b/backend/api/new_blog.go @@ -3,32 +3,21 @@ package api import ( "context" "encoding/json" - "io" "net/http" core "fr.latosa-escrima/api/core" ) func HandleCreateBlog(w http.ResponseWriter, r *http.Request) { - body, err := io.ReadAll(r.Body) - if err != nil { - core.JSONError{ - Status: core.Error, - Message: err.Error(), - }.Respond(w, http.StatusNoContent) - return - } var blog core.Blog - if err = json.Unmarshal(body, &blog); err != nil { + if err := json.NewDecoder(r.Body).Decode(&blog); err != nil { core.JSONError{ Status: core.Error, Message: err.Error(), - }.Respond(w, http.StatusNoContent) - return + }.Respond(w, http.StatusBadRequest) } - _, err = core.DB.NewInsert().Model(blog).Exec(context.Background()) - if err != nil { + if _, err := core.DB.NewInsert().Model(&blog).Exec(context.Background()); err != nil { core.JSONError{ Status: core.Error, Message: err.Error(),