✨ User actor in activitypub
This commit is contained in:
		@@ -126,3 +126,24 @@ func apUserOutbox(c *fiber.Ctx) error {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	return c.JSON(outbox)
 | 
						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)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -12,6 +12,7 @@ func MapAPIs(app *fiber.App, baseURL string) {
 | 
				
			|||||||
		{
 | 
							{
 | 
				
			||||||
			activitypub.Post("/users/:name/inbox", apUserInbox)
 | 
								activitypub.Post("/users/:name/inbox", apUserInbox)
 | 
				
			||||||
			activitypub.Get("/users/:name/outbox", apUserOutbox)
 | 
								activitypub.Get("/users/:name/outbox", apUserOutbox)
 | 
				
			||||||
 | 
								activitypub.Get("/users/:name", apUserActor)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		publishers := api.Group("/publishers").Name("Publisher API")
 | 
							publishers := api.Group("/publishers").Name("Publisher API")
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user