✨ Able to search sticker with alias
This commit is contained in:
parent
778d09d74a
commit
bf5c718780
@ -23,6 +23,7 @@ func MapAPIs(app *fiber.App, baseURL string) {
|
||||
api.Post("/attachments/multipart", createAttachmentMultipartPlaceholder)
|
||||
api.Post("/attachments/multipart/:file/:chunk", uploadAttachmentMultipart)
|
||||
|
||||
api.Get("/stickers/lookup", lookupStickerBatch)
|
||||
api.Get("/stickers/lookup/:alias", lookupSticker)
|
||||
api.Get("/stickers/manifest", listStickerManifest)
|
||||
api.Get("/stickers/packs", listStickerPacks)
|
||||
|
@ -12,6 +12,15 @@ import (
|
||||
"github.com/gofiber/fiber/v2"
|
||||
)
|
||||
|
||||
func lookupStickerBatch(c *fiber.Ctx) error {
|
||||
probe := c.Query("probe")
|
||||
if stickers, err := services.GetStickerLikeAlias(probe); err != nil {
|
||||
return fiber.NewError(fiber.StatusNotFound, err.Error())
|
||||
} else {
|
||||
return c.JSON(stickers)
|
||||
}
|
||||
}
|
||||
|
||||
func lookupSticker(c *fiber.Ctx) error {
|
||||
alias := c.Params("alias")
|
||||
if sticker, err := services.GetStickerWithAlias(alias); err != nil {
|
||||
|
@ -8,6 +8,20 @@ import (
|
||||
"github.com/spf13/viper"
|
||||
)
|
||||
|
||||
func GetStickerLikeAlias(alias string) ([]models.Sticker, error) {
|
||||
var stickers []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("UPPER(CONCAT(pk.prefix, alias)) LIKE UPPER(?)", "%"+alias+"%").
|
||||
Preload("Attachment").Preload("Pack").
|
||||
Limit(10).
|
||||
Find(&stickers).Error; err != nil {
|
||||
return stickers, err
|
||||
}
|
||||
return stickers, nil
|
||||
}
|
||||
|
||||
func GetStickerWithAlias(alias string) (models.Sticker, error) {
|
||||
var sticker models.Sticker
|
||||
prefix := viper.GetString("database.prefix")
|
||||
|
Loading…
Reference in New Issue
Block a user