Update + Delete articles

This commit is contained in:
cdricms
2025-02-25 17:49:37 +01:00
parent 793e3748f9
commit a3f716446c
16 changed files with 764 additions and 3357 deletions

View File

@@ -3,18 +3,25 @@ package blogs
import (
"context"
"net/http"
"regexp"
core "fr.latosa-escrima/core"
"fr.latosa-escrima/core/models"
)
func HandleBlog(w http.ResponseWriter, r *http.Request) {
slug := r.PathValue("slug")
identifier := r.PathValue("identifier")
query := "slug = ?"
if regexp.
MustCompile(`^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$`).
MatchString(identifier) {
query = "blog_id = ?"
}
var blog models.Blog
_, err := core.DB.NewSelect().
Model(&blog).
Where("slug = ?", slug).
Where(query, identifier).
Relation("Author").
ScanAndCount(context.Background())
if err != nil {

View File

@@ -18,7 +18,17 @@ var BlogsRoutes = map[string]core.Handler{
Handler: blogs.HandleCategories,
Middlewares: []core.Middleware{Methods("GET")},
},
"/blogs/{slug}": {
"/blogs/{identifier}": {
Handler: blogs.HandleBlog,
Middlewares: []core.Middleware{Methods("GET")}},
"/blogs/{blog_uuid}/delete": {
Handler: blogs.HandleDelete,
Middlewares: []core.Middleware{Methods("DELETE"),
HasPermissions("blogs", "delete"), AuthJWT},
},
"/blogs/{blog_uuid}/update": {
Handler: blogs.HandleUpdate,
Middlewares: []core.Middleware{Methods("PATCH"),
HasPermissions("blogs", "update"), AuthJWT},
},
}