Publisher api

This commit is contained in:
LittleSheep 2024-08-19 00:57:20 +08:00
parent ae269dfb3b
commit 9a1e749649
3 changed files with 43 additions and 0 deletions

View File

@ -11,6 +11,8 @@ func MapAPIs(app *fiber.App, baseURL string) {
api.Get("/users/:account", getOthersInfo)
api.Get("/users/:account/pin", listOthersPinnedPost)
api.Get("/publishers/:name", getPublisher)
recommendations := api.Group("/recommendations").Name("Recommendations API")
{
recommendations.Get("/", listRecommendationNews)

View File

@ -0,0 +1,15 @@
package api
import (
"git.solsynth.dev/hydrogen/interactive/pkg/internal/services"
"github.com/gofiber/fiber/v2"
)
func getPublisher(c *fiber.Ctx) error {
alias := c.Params("name")
if out, err := services.GetPublisher(alias); err != nil {
return fiber.NewError(fiber.StatusNotFound, err.Error())
} else {
return c.JSON(out)
}
}

View File

@ -0,0 +1,26 @@
package services
import (
"git.solsynth.dev/hydrogen/interactive/pkg/internal/database"
"git.solsynth.dev/hydrogen/interactive/pkg/internal/models"
"github.com/gofiber/fiber/v2"
)
func GetPublisher(alias string) (any, error) {
realm, err := GetRealmWithAlias(alias)
if err == nil {
return fiber.Map{
"type": "realm",
"data": realm,
}, nil
}
var account models.Account
if err = database.C.Where("name = ?", alias).First(&account).Error; err != nil {
return nil, err
}
return fiber.Map{
"type": "account",
"data": account,
}, nil
}