feat: update page

This commit is contained in:
yanghao05
2025-04-09 21:03:23 +08:00
parent 2346983d67
commit 1f27611dc7
7 changed files with 203 additions and 105 deletions

View File

@@ -78,3 +78,57 @@ func (ctl *posts) Create(ctx fiber.Ctx, form *PostForm) error {
func (ctl *posts) Update(ctx fiber.Ctx, id int64, form *model.Posts) error {
return nil
}
// Delete posts
// @Router /v1/admin/posts/:id [delete]
// @Bind id path
func (ctl *posts) Delete(ctx fiber.Ctx, id int64) error {
post, err := models.Posts.GetByID(ctx.Context(), id)
if err != nil {
return err
}
if post == nil {
return fiber.ErrNotFound
}
if err := models.Posts.DeleteByID(ctx.Context(), id); err != nil {
return err
}
return nil
}
type PostItem struct {
*model.Posts
Medias []*models.MediaItem `json:"medias"`
}
// Show posts by id
// @Router /v1/admin/posts/:id [get]
// @Bind id path
func (ctl *posts) Show(ctx fiber.Ctx, id int64) (*PostItem, error) {
post, err := models.Posts.GetByID(ctx.Context(), id)
if err != nil {
return nil, err
}
medias, err := models.Medias.GetByIds(ctx.Context(), lo.Map(post.Assets.Data, func(asset fields.MediaAsset, _ int) int64 {
return asset.Media
}))
if err != nil {
return nil, err
}
return &PostItem{
Posts: post,
Medias: lo.Map(medias, func(media *model.Medias, _ int) *models.MediaItem {
return &models.MediaItem{
ID: media.ID,
Name: media.Name,
UploadTime: media.CreatedAt.Format("2006-01-02 15:04:05"),
FileSize: media.Size,
MimeType: media.MimeType,
FileType: models.Medias.ConvertFileTypeByMimeType(media.MimeType),
ThumbnailUrl: "",
}
}),
}, nil
}

View File

@@ -56,6 +56,16 @@ func (r *Routes) Register(router fiber.Router) {
Body[model.Posts]("form"),
))
router.Delete("/v1/admin/posts/:id", Func1(
r.posts.Delete,
PathParam[int64]("id"),
))
router.Get("/v1/admin/posts/:id", DataFunc1(
r.posts.Show,
PathParam[int64]("id"),
))
// 注册路由组: uploads
router.Post("/v1/admin/uploads/:md5/chunks/:idx", Func3(
r.uploads.Chunks,