✨ Be able to lookup sticker via thier pack prefix + alias
This commit is contained in:
parent
af1b45bd92
commit
525a103a76
@ -23,6 +23,7 @@ func MapAPIs(app *fiber.App, baseURL string) {
|
|||||||
api.Post("/attachments/multipart", createAttachmentMultipartPlaceholder)
|
api.Post("/attachments/multipart", createAttachmentMultipartPlaceholder)
|
||||||
api.Post("/attachments/multipart/:file/:chunk", uploadAttachmentMultipart)
|
api.Post("/attachments/multipart/:file/:chunk", uploadAttachmentMultipart)
|
||||||
|
|
||||||
|
api.Get("/stickers/lookup/:alias", lookupSticker)
|
||||||
api.Get("/stickers/manifest", listStickerManifest)
|
api.Get("/stickers/manifest", listStickerManifest)
|
||||||
api.Get("/stickers/packs", listStickerPacks)
|
api.Get("/stickers/packs", listStickerPacks)
|
||||||
api.Post("/stickers/packs", createStickerPack)
|
api.Post("/stickers/packs", createStickerPack)
|
||||||
|
@ -12,6 +12,15 @@ import (
|
|||||||
"github.com/gofiber/fiber/v2"
|
"github.com/gofiber/fiber/v2"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func lookupSticker(c *fiber.Ctx) error {
|
||||||
|
alias := c.Params("alias")
|
||||||
|
if sticker, err := services.GetStickerWithAlias(alias); err != nil {
|
||||||
|
return fiber.NewError(fiber.StatusNotFound, err.Error())
|
||||||
|
} else {
|
||||||
|
return c.JSON(sticker)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func listStickers(c *fiber.Ctx) error {
|
func listStickers(c *fiber.Ctx) error {
|
||||||
take := c.QueryInt("take", 0)
|
take := c.QueryInt("take", 0)
|
||||||
offset := c.QueryInt("offset", 0)
|
offset := c.QueryInt("offset", 0)
|
||||||
|
@ -1,10 +1,24 @@
|
|||||||
package services
|
package services
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
|
|
||||||
"git.solsynth.dev/hydrogen/paperclip/pkg/internal/database"
|
"git.solsynth.dev/hydrogen/paperclip/pkg/internal/database"
|
||||||
"git.solsynth.dev/hydrogen/paperclip/pkg/internal/models"
|
"git.solsynth.dev/hydrogen/paperclip/pkg/internal/models"
|
||||||
|
"github.com/spf13/viper"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func GetStickerWithAlias(alias string) (models.Sticker, error) {
|
||||||
|
var sticker models.Sticker
|
||||||
|
prefix := viper.GetString("database.prefix")
|
||||||
|
if err := database.C.
|
||||||
|
Joins(fmt.Sprintf("LEFT JOIN %ssticker_packs pk ON pack_id = pk.id", prefix)).
|
||||||
|
Where("CONCAT(pk.prefix, alias) = ?", alias).First(&sticker).Error; err != nil {
|
||||||
|
return sticker, err
|
||||||
|
}
|
||||||
|
return sticker, nil
|
||||||
|
}
|
||||||
|
|
||||||
func GetSticker(id uint) (models.Sticker, error) {
|
func GetSticker(id uint) (models.Sticker, error) {
|
||||||
var sticker models.Sticker
|
var sticker models.Sticker
|
||||||
if err := database.C.Where("id = ?", id).Preload("Attachment").First(&sticker).Error; err != nil {
|
if err := database.C.Where("id = ?", id).Preload("Attachment").First(&sticker).Error; err != nil {
|
||||||
|
Loading…
Reference in New Issue
Block a user