wp-go/app/pkg/cache/comments.go

43 lines
1.2 KiB
Go
Raw Normal View History

2023-01-12 12:42:16 +00:00
package cache
import (
"context"
2023-05-04 12:36:17 +00:00
"github.com/fthvgb1/wp-go/app/pkg/logs"
"github.com/fthvgb1/wp-go/app/pkg/models"
2023-01-19 13:02:39 +00:00
"github.com/fthvgb1/wp-go/cache"
2023-11-07 07:18:34 +00:00
"github.com/fthvgb1/wp-go/cache/cachemanager"
2023-03-07 09:13:12 +00:00
"github.com/fthvgb1/wp-go/helper/number"
2023-01-12 12:42:16 +00:00
"time"
)
func RecentComments(ctx context.Context, n int) (r []models.Comments) {
2023-03-07 09:13:12 +00:00
nn := number.Max(n, 10)
2023-11-25 09:49:20 +00:00
r, err := cachemanager.GetVarVal[[]models.Comments]("recentComments", ctx, time.Second, ctx, nn)
2023-01-12 12:42:16 +00:00
if len(r) > n {
r = r[0:n]
}
2023-04-07 14:59:07 +00:00
logs.IfError(err, "get recent comment fail")
2023-01-12 12:42:16 +00:00
return
}
func PostComments(ctx context.Context, Id uint64) ([]models.Comments, error) {
2023-11-25 09:49:20 +00:00
ids, err := cachemanager.Get[[]uint64]("postCommentIds", ctx, Id, time.Second)
2023-01-12 12:42:16 +00:00
if err != nil {
return nil, err
}
return GetCommentByIds(ctx, ids)
}
func GetCommentById(ctx context.Context, id uint64) (models.Comments, error) {
return cachemanager.Get[models.Comments]("commentData", ctx, id, time.Second)
2023-01-12 12:42:16 +00:00
}
func GetCommentByIds(ctx context.Context, ids []uint64) ([]models.Comments, error) {
return cachemanager.GetMultiple[models.Comments]("commentData", ctx, ids, time.Second)
2023-01-12 12:42:16 +00:00
}
2023-01-19 13:02:39 +00:00
func NewCommentCache() *cache.MapCache[string, string] {
2023-11-25 09:49:20 +00:00
r, _ := cachemanager.GetMapCache[string, string]("NewComment")
return r
2023-01-19 13:02:39 +00:00
}