feat: update player
This commit is contained in:
@@ -99,7 +99,7 @@ type PostItem struct {
|
||||
}
|
||||
|
||||
// Show
|
||||
// @Router /posts/:id [get]
|
||||
// @Router /posts/:id/show [get]
|
||||
// @Bind id path
|
||||
// @Bind user local
|
||||
func (ctl *posts) Show(ctx fiber.Ctx, id int64, user *model.Users) (*PostItem, error) {
|
||||
@@ -184,13 +184,55 @@ func (ctl *posts) Play(ctx fiber.Ctx, id int64, user *model.Users) (*PlayUrl, er
|
||||
// @Router /posts/mine [get]
|
||||
// @Bind pagination query
|
||||
// @Bind query query
|
||||
func (ctl *posts) Mine(ctx fiber.Ctx, pagination *requests.Pagination, query *ListQuery) (*requests.Pager, error) {
|
||||
// @Bind user local
|
||||
func (ctl *posts) Mine(ctx fiber.Ctx, pagination *requests.Pagination, query *ListQuery, user *model.Users) (*requests.Pager, error) {
|
||||
log.Infof("Fetching posts for user with pagination: %+v and keyword: %v", pagination, query.Keyword)
|
||||
return models.Users.PostList(ctx.Context(), 1, pagination, query.Keyword, func(item model.Posts) model.Posts {
|
||||
|
||||
cond := models.Posts.BuildConditionWithKey(query.Keyword)
|
||||
pager, err := models.Users.PostList(ctx.Context(), 1, pagination, cond, func(item model.Posts) model.Posts {
|
||||
item.Assets = fields.ToJson([]fields.MediaAsset{})
|
||||
item.Content = ""
|
||||
return item
|
||||
})
|
||||
if err != nil {
|
||||
log.WithError(err).Errorf("post list err: %v", err)
|
||||
return nil, err
|
||||
}
|
||||
|
||||
postIds := lo.Map(pager.Items.([]model.Posts), func(item model.Posts, _ int) int64 { return item.ID })
|
||||
if len(postIds) > 0 {
|
||||
items := lo.FilterMap(pager.Items.([]model.Posts), func(item model.Posts, _ int) (PostItem, bool) {
|
||||
medias, err := models.Posts.GetMediaByIds(ctx.Context(), item.HeadImages.Data)
|
||||
if err != nil {
|
||||
log.Errorf("GetMediaByIds err: %v", err)
|
||||
return PostItem{}, false
|
||||
}
|
||||
mediaUrls := lo.FilterMap(medias, func(item model.Medias, _ int) (string, bool) {
|
||||
url, err := ctl.oss.GetSignedUrl(ctx.Context(), item.Path)
|
||||
if err != nil {
|
||||
log.WithError(err).Errorf("head image GetSignedUrl err: %v", err)
|
||||
return "", false
|
||||
}
|
||||
|
||||
return url, true
|
||||
})
|
||||
|
||||
return PostItem{
|
||||
ID: item.ID,
|
||||
Title: item.Title,
|
||||
Description: item.Description,
|
||||
Price: item.Price,
|
||||
Discount: item.Discount,
|
||||
Views: item.Views,
|
||||
Likes: item.Likes,
|
||||
Tags: item.Tags.Data,
|
||||
HeadImages: mediaUrls,
|
||||
}, true
|
||||
})
|
||||
|
||||
pager.Items = items
|
||||
}
|
||||
return pager, nil
|
||||
}
|
||||
|
||||
// Buy
|
||||
|
||||
Reference in New Issue
Block a user