User actor in activitypub

This commit is contained in:
2025-03-11 22:19:57 +08:00
parent b151acd6ac
commit 673e7a69f5
2 changed files with 22 additions and 0 deletions

View File

@@ -126,3 +126,24 @@ func apUserOutbox(c *fiber.Ctx) error {
return c.JSON(outbox)
}
func apUserActor(c *fiber.Ctx) error {
name := c.Params("name")
var publisher models.Publisher
if err := database.C.Where("name = ?", name).First(&publisher).Error; err != nil {
return c.Status(404).JSON(fiber.Map{"error": "User not found"})
}
id := services.GetActivityID("/users/" + publisher.Name)
actor := activitypub.Actor{
ID: id,
Inbox: id + "/inbox",
Outbox: id + "/outbox",
Type: activitypub.PersonType,
Name: activitypub.DefaultNaturalLanguageValue(publisher.Name),
PreferredUsername: activitypub.DefaultNaturalLanguageValue(publisher.Nick),
}
return c.JSON(actor)
}