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-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-02-09 07:43:20 +00:00
|
|
|
r, err := recentCommentsCaches.GetCache(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) {
|
|
|
|
ids, err := postCommentCaches.GetCache(ctx, Id, time.Second, ctx, Id)
|
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
return GetCommentByIds(ctx, ids)
|
|
|
|
}
|
|
|
|
|
|
|
|
func GetCommentById(ctx context.Context, id uint64) (models.Comments, error) {
|
|
|
|
return commentsCache.GetCache(ctx, id, time.Second, ctx, id)
|
|
|
|
}
|
|
|
|
|
|
|
|
func GetCommentByIds(ctx context.Context, ids []uint64) ([]models.Comments, error) {
|
|
|
|
return commentsCache.GetCacheBatch(ctx, ids, time.Second, ctx, ids)
|
|
|
|
}
|
2023-01-19 13:02:39 +00:00
|
|
|
|
|
|
|
func NewCommentCache() *cache.MapCache[string, string] {
|
|
|
|
return newCommentCache
|
|
|
|
}
|