✨ List boost by users
This commit is contained in:
parent
1a5787d3c2
commit
ebc3a6f09c
@ -9,7 +9,32 @@ import (
|
|||||||
"github.com/gofiber/fiber/v2"
|
"github.com/gofiber/fiber/v2"
|
||||||
)
|
)
|
||||||
|
|
||||||
func listBoost(c *fiber.Ctx) error {
|
func listBoostByUser(c *fiber.Ctx) error {
|
||||||
|
user := c.Locals("nex_user").(*sec.UserInfo)
|
||||||
|
take := c.QueryInt("take", 0)
|
||||||
|
offset := c.QueryInt("offset", 0)
|
||||||
|
|
||||||
|
if take > 100 {
|
||||||
|
take = 100
|
||||||
|
}
|
||||||
|
|
||||||
|
count, err := services.CountBoostByUser(user.ID)
|
||||||
|
if err != nil {
|
||||||
|
return fiber.NewError(fiber.StatusInternalServerError, err.Error())
|
||||||
|
}
|
||||||
|
|
||||||
|
boosts, err := services.ListBoostByUser(user.ID, take, offset)
|
||||||
|
if err != nil {
|
||||||
|
return fiber.NewError(fiber.StatusInternalServerError, err.Error())
|
||||||
|
}
|
||||||
|
|
||||||
|
return c.JSON(fiber.Map{
|
||||||
|
"count": count,
|
||||||
|
"data": boosts,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
func listBoostByAttachment(c *fiber.Ctx) error {
|
||||||
attachmentId, _ := c.ParamsInt("attachmentId", 0)
|
attachmentId, _ := c.ParamsInt("attachmentId", 0)
|
||||||
|
|
||||||
if boost, err := services.ListBoostByAttachment(uint(attachmentId)); err != nil {
|
if boost, err := services.ListBoostByAttachment(uint(attachmentId)); err != nil {
|
||||||
|
@ -12,6 +12,7 @@ func MapAPIs(app *fiber.App, baseURL string) {
|
|||||||
{
|
{
|
||||||
boost := api.Group("/boosts").Name("Boosts API")
|
boost := api.Group("/boosts").Name("Boosts API")
|
||||||
{
|
{
|
||||||
|
boost.Get("/", listBoostByUser)
|
||||||
boost.Get("/:id", getBoost)
|
boost.Get("/:id", getBoost)
|
||||||
boost.Post("/", sec.ValidatorMiddleware, createBoost)
|
boost.Post("/", sec.ValidatorMiddleware, createBoost)
|
||||||
boost.Put("/:id", sec.ValidatorMiddleware, updateBoost)
|
boost.Put("/:id", sec.ValidatorMiddleware, updateBoost)
|
||||||
@ -28,7 +29,7 @@ func MapAPIs(app *fiber.App, baseURL string) {
|
|||||||
|
|
||||||
attachments := api.Get("/attachments").Name("Attachments API")
|
attachments := api.Get("/attachments").Name("Attachments API")
|
||||||
{
|
{
|
||||||
attachments.Get("/:attachmentId/boosts", listBoost)
|
attachments.Get("/:attachmentId/boosts", listBoostByAttachment)
|
||||||
|
|
||||||
attachments.Get("/", listAttachment)
|
attachments.Get("/", listAttachment)
|
||||||
attachments.Get("/:id/meta", getAttachmentMeta)
|
attachments.Get("/:id/meta", getAttachmentMeta)
|
||||||
|
@ -13,6 +13,28 @@ import (
|
|||||||
"github.com/spf13/viper"
|
"github.com/spf13/viper"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func CountBoostByUser(userId uint) (int64, error) {
|
||||||
|
var count int64
|
||||||
|
if err := database.C.
|
||||||
|
Model(&models.AttachmentBoost{}).
|
||||||
|
Where("account_id = ?", userId).
|
||||||
|
Count(&count).Error; err != nil {
|
||||||
|
return count, err
|
||||||
|
}
|
||||||
|
return count, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func ListBoostByUser(userId uint, take, offset int) ([]models.AttachmentBoost, error) {
|
||||||
|
var boosts []models.AttachmentBoost
|
||||||
|
if err := database.C.
|
||||||
|
Where("account_id = ?", userId).
|
||||||
|
Limit(take).Offset(offset).
|
||||||
|
Find(&boosts).Error; err != nil {
|
||||||
|
return boosts, err
|
||||||
|
}
|
||||||
|
return boosts, nil
|
||||||
|
}
|
||||||
|
|
||||||
func ListBoostByAttachment(attachmentId uint) ([]models.AttachmentBoost, error) {
|
func ListBoostByAttachment(attachmentId uint) ([]models.AttachmentBoost, error) {
|
||||||
var boosts []models.AttachmentBoost
|
var boosts []models.AttachmentBoost
|
||||||
if err := database.C.Where("attachment_id = ?", attachmentId).Find(&boosts).Error; err != nil {
|
if err := database.C.Where("attachment_id = ?", attachmentId).Find(&boosts).Error; err != nil {
|
||||||
|
Loading…
Reference in New Issue
Block a user