From c381b53a29c04ff5d5e857cfea96becb5808c682 Mon Sep 17 00:00:00 2001 From: LittleSheep Date: Sat, 3 Aug 2024 22:45:50 +0800 Subject: [PATCH] :bug: Just forgot to add pagination data into response --- pkg/internal/server/api/sticker_packs_api.go | 22 ++++++++++++++++++-- pkg/internal/server/api/stickers_api.go | 11 +++++++++- 2 files changed, 30 insertions(+), 3 deletions(-) diff --git a/pkg/internal/server/api/sticker_packs_api.go b/pkg/internal/server/api/sticker_packs_api.go index 8d5e6f5..90138e6 100644 --- a/pkg/internal/server/api/sticker_packs_api.go +++ b/pkg/internal/server/api/sticker_packs_api.go @@ -17,11 +17,20 @@ func listStickerManifest(c *fiber.Ctx) error { take = 100 } + var count int64 + if err := database.C.Model(&models.StickerPack{}).Count(&count).Error; err != nil { + return fiber.NewError(fiber.StatusInternalServerError, err.Error()) + } + stickers, err := services.ListStickerPackWithStickers(take, offset) if err != nil { return fiber.NewError(fiber.StatusInternalServerError, err.Error()) } - return c.JSON(stickers) + + return c.JSON(fiber.Map{ + "count": count, + "data": stickers, + }) } func listStickerPacks(c *fiber.Ctx) error { @@ -43,11 +52,20 @@ func listStickerPacks(c *fiber.Ctx) error { } } + var count int64 + if err := database.C.Model(&models.StickerPack{}).Count(&count).Error; err != nil { + return fiber.NewError(fiber.StatusInternalServerError, err.Error()) + } + var packs []models.StickerPack if err := tx.Limit(take).Offset(offset).Find(&packs).Error; err != nil { return fiber.NewError(fiber.StatusInternalServerError, err.Error()) } - return c.JSON(packs) + + return c.JSON(fiber.Map{ + "count": count, + "data": packs, + }) } func createStickerPack(c *fiber.Ctx) error { diff --git a/pkg/internal/server/api/stickers_api.go b/pkg/internal/server/api/stickers_api.go index 28193fd..e6896ac 100644 --- a/pkg/internal/server/api/stickers_api.go +++ b/pkg/internal/server/api/stickers_api.go @@ -35,11 +35,20 @@ func listStickers(c *fiber.Ctx) error { tx = tx.Where("pack_id = ?", val) } + var count int64 + if err := database.C.Model(&models.Sticker{}).Count(&count).Error; err != nil { + return fiber.NewError(fiber.StatusInternalServerError, err.Error()) + } + var stickers []models.Sticker if err := tx.Limit(take).Offset(offset).Preload("Attachment").Find(&stickers).Error; err != nil { return fiber.NewError(fiber.StatusInternalServerError, err.Error()) } - return c.JSON(stickers) + + return c.JSON(fiber.Map{ + "count": count, + "data": stickers, + }) } func getSticker(c *fiber.Ctx) error {