diff --git a/vblog/apps/blog/api/api.go b/vblog/apps/blog/api/api.go index 037057e..30b1011 100644 --- a/vblog/apps/blog/api/api.go +++ b/vblog/apps/blog/api/api.go @@ -1,6 +1,8 @@ package api import ( + "strconv" + "github.com/gin-gonic/gin" "github.com/infraboard/mcube/v2/http/gin/response" "github.com/infraboard/mcube/v2/ioc" @@ -47,9 +49,11 @@ func (h *BlogApiHandler) Init() error { // 获取模块路有: url前缀, r := ioc_gin.ObjectRouter(h) r.GET("", h.QueryBlog) + r.GET(":id", h.DescribeBlog) r.Use(middleware.Auth) r.POST("", h.CreateBlog) + r.PUT(":id", h.UpdateBlog) r.DELETE(":id", h.DeleteBlog) return nil } @@ -92,6 +96,22 @@ func (h *BlogApiHandler) QueryBlog(ctx *gin.Context) { response.Success(ctx, ins) } +func (h *BlogApiHandler) DescribeBlog(ctx *gin.Context) { + idInt, err := strconv.ParseInt(ctx.Param("id"), 10, 64) + if err != nil { + response.Failed(ctx, err) + return + } + + req := blog.NewDescribeBlogRequest(uint(idInt)) + ins, err := h.blog.DescribeBlog(ctx.Request.Context(), req) + if err != nil { + response.Failed(ctx, err) + return + } + response.Success(ctx, ins) +} + func (h *BlogApiHandler) DeleteBlog(ctx *gin.Context) { in := blog.NewDeleteBlogRequest(ctx.Param("id")) @@ -102,3 +122,19 @@ func (h *BlogApiHandler) DeleteBlog(ctx *gin.Context) { } response.Success(ctx, "ok") } + +func (h *BlogApiHandler) UpdateBlog(ctx *gin.Context) { + idInt, err := strconv.ParseInt(ctx.Param("id"), 10, 64) + if err != nil { + response.Failed(ctx, err) + return + } + + in := blog.NewUpdateBlogRequest(uint(idInt)) + ins, err := h.blog.UpdateBlog(ctx.Request.Context(), in) + if err != nil { + response.Failed(ctx, err) + return + } + response.Success(ctx, ins) +} diff --git a/vblog/apps/blog/interface.go b/vblog/apps/blog/interface.go index 1daaa63..a381c47 100644 --- a/vblog/apps/blog/interface.go +++ b/vblog/apps/blog/interface.go @@ -58,6 +58,12 @@ type PublishBlogRequest struct { StatusSpec } +func NewUpdateBlogRequest(id uint) *UpdateBlogRequest { + return &UpdateBlogRequest{ + GetRequest: *utils.NewGetRequest(id), + } +} + type UpdateBlogRequest struct { utils.GetRequest CreateBlogRequest diff --git a/vblog/logs/vblog.log b/vblog/logs/vblog.log index 03b497c..8e26778 100644 --- a/vblog/logs/vblog.log +++ b/vblog/logs/vblog.log @@ -353,3 +353,36 @@ {"level":"info","component":"server","time":"2025-01-19T09:03:41+08:00","caller":"ioc/server/server.go:77","message":"loaded defaults: []"} {"level":"info","component":"http","time":"2025-01-19T09:03:41+08:00","caller":"config/http/http.go:144","message":"HTTP服务启动成功, 监听地址: 127.0.0.1:8080"} {"level":"debug","time":"2025-01-19T09:05:07+08:00","caller":"token/api/api.go:57","message":"cookie domain: localhost"} +{"level":"info","component":"server","time":"2025-01-19T11:50:44+08:00","caller":"ioc/server/server.go:101","message":"receive signal 'interrupt', start graceful shutdown"} +{"level":"info","component":"http","time":"2025-01-19T11:50:44+08:00","caller":"config/http/http.go:152","message":"start graceful shutdown"} +{"level":"error","component":"http","time":"2025-01-19T11:50:44+08:00","caller":"config/http/http.go:146","message":"http: Server closed"} +{"level":"info","component":"server","time":"2025-01-19T11:50:44+08:00","caller":"ioc/server/server.go:115","message":"http service stop complete"} +{"level":"info","component":"gin_webframework","time":"2025-01-19T11:50:46+08:00","caller":"config/gin/framework.go:41","message":"enable gin recovery"} +{"level":"debug","time":"2025-01-19T11:50:46+08:00","caller":"token/impl/impl.go:39","message":"DefaultExpiredTTL: 3600"} +{"level":"info","component":"server","time":"2025-01-19T11:50:46+08:00","caller":"ioc/server/server.go:74","message":"loaded configs: [app.v1 trace.v1 log.v1 validator.v1 gin_webframework.v1 datasource.v1 grpc.v1 http.v1]"} +{"level":"info","component":"server","time":"2025-01-19T11:50:46+08:00","caller":"ioc/server/server.go:75","message":"loaded controllers: [token.v1 user.v1 blog.v1]"} +{"level":"info","component":"server","time":"2025-01-19T11:50:46+08:00","caller":"ioc/server/server.go:76","message":"loaded apis: [blogs.v1 tokens.v1]"} +{"level":"info","component":"server","time":"2025-01-19T11:50:46+08:00","caller":"ioc/server/server.go:77","message":"loaded defaults: []"} +{"level":"info","component":"http","time":"2025-01-19T11:50:46+08:00","caller":"config/http/http.go:144","message":"HTTP服务启动成功, 监听地址: 127.0.0.1:8080"} +{"level":"info","component":"server","time":"2025-01-19T11:59:08+08:00","caller":"ioc/server/server.go:101","message":"receive signal 'interrupt', start graceful shutdown"} +{"level":"info","component":"http","time":"2025-01-19T11:59:08+08:00","caller":"config/http/http.go:152","message":"start graceful shutdown"} +{"level":"error","component":"http","time":"2025-01-19T11:59:08+08:00","caller":"config/http/http.go:146","message":"http: Server closed"} +{"level":"info","component":"server","time":"2025-01-19T11:59:08+08:00","caller":"ioc/server/server.go:115","message":"http service stop complete"} +{"level":"info","component":"gin_webframework","time":"2025-01-19T11:59:10+08:00","caller":"config/gin/framework.go:41","message":"enable gin recovery"} +{"level":"debug","time":"2025-01-19T11:59:10+08:00","caller":"token/impl/impl.go:39","message":"DefaultExpiredTTL: 3600"} +{"level":"info","component":"server","time":"2025-01-19T11:59:10+08:00","caller":"ioc/server/server.go:74","message":"loaded configs: [app.v1 trace.v1 log.v1 validator.v1 gin_webframework.v1 datasource.v1 grpc.v1 http.v1]"} +{"level":"info","component":"server","time":"2025-01-19T11:59:10+08:00","caller":"ioc/server/server.go:75","message":"loaded controllers: [token.v1 user.v1 blog.v1]"} +{"level":"info","component":"server","time":"2025-01-19T11:59:10+08:00","caller":"ioc/server/server.go:76","message":"loaded apis: [blogs.v1 tokens.v1]"} +{"level":"info","component":"server","time":"2025-01-19T11:59:10+08:00","caller":"ioc/server/server.go:77","message":"loaded defaults: []"} +{"level":"info","component":"http","time":"2025-01-19T11:59:10+08:00","caller":"config/http/http.go:144","message":"HTTP服务启动成功, 监听地址: 127.0.0.1:8080"} +{"level":"info","component":"server","time":"2025-01-19T11:59:42+08:00","caller":"ioc/server/server.go:101","message":"receive signal 'interrupt', start graceful shutdown"} +{"level":"info","component":"http","time":"2025-01-19T11:59:42+08:00","caller":"config/http/http.go:152","message":"start graceful shutdown"} +{"level":"error","component":"http","time":"2025-01-19T11:59:42+08:00","caller":"config/http/http.go:146","message":"http: Server closed"} +{"level":"info","component":"server","time":"2025-01-19T11:59:42+08:00","caller":"ioc/server/server.go:115","message":"http service stop complete"} +{"level":"info","component":"gin_webframework","time":"2025-01-19T11:59:44+08:00","caller":"config/gin/framework.go:41","message":"enable gin recovery"} +{"level":"debug","time":"2025-01-19T11:59:44+08:00","caller":"token/impl/impl.go:39","message":"DefaultExpiredTTL: 3600"} +{"level":"info","component":"server","time":"2025-01-19T11:59:44+08:00","caller":"ioc/server/server.go:74","message":"loaded configs: [app.v1 trace.v1 log.v1 validator.v1 gin_webframework.v1 datasource.v1 grpc.v1 http.v1]"} +{"level":"info","component":"server","time":"2025-01-19T11:59:44+08:00","caller":"ioc/server/server.go:75","message":"loaded controllers: [token.v1 user.v1 blog.v1]"} +{"level":"info","component":"server","time":"2025-01-19T11:59:44+08:00","caller":"ioc/server/server.go:76","message":"loaded apis: [blogs.v1 tokens.v1]"} +{"level":"info","component":"server","time":"2025-01-19T11:59:44+08:00","caller":"ioc/server/server.go:77","message":"loaded defaults: []"} +{"level":"info","component":"http","time":"2025-01-19T11:59:44+08:00","caller":"config/http/http.go:144","message":"HTTP服务启动成功, 监听地址: 127.0.0.1:8080"} diff --git a/vblog/web/src/api/blog.js b/vblog/web/src/api/blog.js index b98fcd9..05649d9 100644 --- a/vblog/web/src/api/blog.js +++ b/vblog/web/src/api/blog.js @@ -11,6 +11,12 @@ export const QUERY_BLOG = (params) => params, }) +export const DESCRIBE_BLOG = (blog_id) => + client({ + url: `/api/vblog/v1/blogs/${blog_id}`, + method: 'GET', + }) + export const CREATE_BLOG = (data) => client({ url: '/api/vblog/v1/blogs', diff --git a/vblog/web/src/views/backend/blog/EditPage.vue b/vblog/web/src/views/backend/blog/EditPage.vue index d6646c5..4a8860f 100644 --- a/vblog/web/src/views/backend/blog/EditPage.vue +++ b/vblog/web/src/views/backend/blog/EditPage.vue @@ -37,12 +37,11 @@