feat(postgres): added GetUserFavoritePostsWithPagination
This commit is contained in:
parent
6268a594cf
commit
8cde1235ad
@ -232,3 +232,43 @@ func GetAllAnthroveUserIDs(ctx context.Context, db *gorm.DB) ([]models.AnthroveU
|
|||||||
|
|
||||||
return userIDs, nil
|
return userIDs, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func GetUserFavoriteNodeWithPagination(ctx context.Context, db *gorm.DB, anthroveUserID models.AnthroveUserID, skip int, limit int) (*graphModels.FavoriteList, error) {
|
||||||
|
var userFavorites []pgModels.UserFavorite
|
||||||
|
var favoritePosts []graphModels.FavoritePost
|
||||||
|
|
||||||
|
err := db.WithContext(ctx).Model(&pgModels.UserFavorite{}).Where("user_id = ?", string(anthroveUserID)).Offset(skip).Limit(limit).Find(&userFavorites).Error
|
||||||
|
if err != nil {
|
||||||
|
log.WithFields(log.Fields{
|
||||||
|
"anthrove_user_id": anthroveUserID,
|
||||||
|
"skip": skip,
|
||||||
|
"limit": limit,
|
||||||
|
}).Error("database: failed to get user favorites with pagination")
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, userFavorite := range userFavorites {
|
||||||
|
var post pgModels.Post
|
||||||
|
err = db.WithContext(ctx).Model(&pgModels.Post{}).Where("id = ?", userFavorite.PostID).First(&post).Error
|
||||||
|
if err != nil {
|
||||||
|
log.WithFields(log.Fields{
|
||||||
|
"post_id": userFavorite.PostID,
|
||||||
|
}).Error("database: failed to get post")
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
favoritePosts = append(favoritePosts, graphModels.FavoritePost{
|
||||||
|
AnthrovePost: graphModels.AnthrovePost{
|
||||||
|
PostID: models.AnthrovePostID(post.ID),
|
||||||
|
Rating: post.Rating,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
log.WithFields(log.Fields{
|
||||||
|
"anthrove_user_id": anthroveUserID,
|
||||||
|
"anthrove_user_fav_count": len(favoritePosts),
|
||||||
|
}).Trace("database: got all anthrove user favorites")
|
||||||
|
|
||||||
|
return &graphModels.FavoriteList{Posts: favoritePosts}, nil
|
||||||
|
}
|
||||||
|
@ -122,8 +122,7 @@ func (p *postgresqlConnection) GetAllAnthroveUserIDs(ctx context.Context) ([]mod
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (p *postgresqlConnection) GetUserFavoritePostsWithPagination(ctx context.Context, anthroveUserID models.AnthroveUserID, skip int, limit int) (*graphModels.FavoriteList, error) {
|
func (p *postgresqlConnection) GetUserFavoritePostsWithPagination(ctx context.Context, anthroveUserID models.AnthroveUserID, skip int, limit int) (*graphModels.FavoriteList, error) {
|
||||||
//TODO implement me
|
return postgres.GetUserFavoriteNodeWithPagination(ctx, p.db, anthroveUserID, skip, limit)
|
||||||
panic("implement me")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *postgresqlConnection) GetUserTagsTroughFavedPosts(ctx context.Context, anthroveUserID models.AnthroveUserID) ([]graphModels.TagsWithFrequency, error) {
|
func (p *postgresqlConnection) GetUserTagsTroughFavedPosts(ctx context.Context, anthroveUserID models.AnthroveUserID) ([]graphModels.TagsWithFrequency, error) {
|
||||||
|
Reference in New Issue
Block a user