Passport/pkg/internal/server/api/index.go

133 lines
3.6 KiB
Go
Raw Normal View History

package api
import (
"github.com/gofiber/fiber/v2"
)
func MapAPIs(app *fiber.App, baseURL string) {
app.Get("/.well-known/openid-configuration", getOidcConfiguration)
api := app.Group(baseURL).Name("API")
{
notify := api.Group("/notifications").Name("Notifications API")
{
notify.Get("/", getNotifications)
notify.Post("/subscribe", addNotifySubscriber)
2024-07-23 13:25:13 +00:00
notify.Put("/read", markNotificationReadBatch)
notify.Put("/read/:notificationId", markNotificationRead)
}
api.Get("/users/lookup", lookupAccount)
api.Get("/users/search", searchAccount)
me := api.Group("/users/me").Name("Myself Operations")
{
me.Get("/avatar", getAvatar)
me.Get("/banner", getBanner)
me.Put("/avatar", setAvatar)
me.Put("/banner", setBanner)
me.Get("/", getUserinfo)
me.Put("/", editUserinfo)
me.Get("/events", getEvents)
me.Get("/tickets", getTickets)
2024-06-26 06:47:34 +00:00
me.Delete("/tickets/:ticketId", killTicket)
me.Post("/confirm", doRegisterConfirm)
me.Post("/password-reset", requestResetPassword)
me.Patch("/password-reset", confirmResetPassword)
2024-06-26 12:53:11 +00:00
me.Get("/status", getMyselfStatus)
2024-06-26 12:05:28 +00:00
me.Post("/status", setStatus)
2024-06-26 12:41:20 +00:00
me.Put("/status", editStatus)
me.Delete("/status", clearStatus)
2024-06-26 12:05:28 +00:00
2024-07-23 13:25:13 +00:00
relations := me.Group("/relations").Name("Relations")
{
2024-07-23 13:25:13 +00:00
relations.Get("/", listRelationship)
relations.Get("/:relatedId", getRelationship)
2024-07-23 16:04:21 +00:00
relations.Put("/:relatedId", editRelationship)
2024-07-23 13:25:13 +00:00
relations.Delete("/:relatedId", deleteRelationship)
2024-07-23 15:50:05 +00:00
relations.Post("/", makeFriendship)
relations.Post("/:relatedId", makeFriendship)
2024-07-23 16:04:21 +00:00
relations.Post("/:relatedId/accept", acceptFriend)
relations.Post("/:relatedId/decline", declineFriend)
}
}
directory := api.Group("/users/:alias").Name("User Directory")
{
directory.Get("/", getOtherUserinfo)
2024-06-26 12:05:28 +00:00
directory.Get("/status", getStatus)
}
api.Get("/users", getOtherUserinfoBatch)
api.Post("/users", doRegister)
2024-06-26 06:47:34 +00:00
auth := api.Group("/auth").Name("Auth")
{
auth.Post("/", doAuthenticate)
auth.Post("/mfa", doMultiFactorAuthenticate)
auth.Post("/token", getToken)
2024-06-26 10:18:04 +00:00
auth.Get("/tickets/:ticketId", getTicket)
2024-06-26 06:47:34 +00:00
auth.Get("/factors", getAvailableFactors)
auth.Post("/factors/:factorId", requestFactorToken)
2024-06-26 06:47:34 +00:00
auth.Get("/o/authorize", tryAuthorizeThirdClient)
auth.Post("/o/authorize", authorizeThirdClient)
}
realms := api.Group("/realms").Name("Realms API")
{
realms.Get("/", listCommunityRealm)
realms.Get("/me", listOwnedRealm)
realms.Get("/me/available", listAvailableRealm)
realms.Get("/:realm", getRealm)
realms.Get("/:realm/members", listRealmMembers)
realms.Get("/:realm/members/me", getMyRealmMember)
realms.Post("/", createRealm)
realms.Put("/:realmId", editRealm)
realms.Delete("/:realmId", deleteRealm)
realms.Post("/:realm/members", addRealmMember)
realms.Delete("/:realm/members", removeRealmMember)
realms.Delete("/:realm/members/me", leaveRealm)
}
developers := api.Group("/dev").Name("Developers API")
{
developers.Post("/notify", notifyUser)
2024-08-24 12:28:10 +00:00
bots := developers.Group("/bots").Name("Bots")
{
bots.Get("/", listBots)
bots.Post("/", createBot)
2024-08-25 12:51:58 +00:00
bots.Delete("/:botId", deleteBot)
keys := bots.Group("/keys/:botId").Name("Bots' Keys")
2024-08-25 12:51:58 +00:00
{
keys.Get("/", listBotKeys)
keys.Post("/", createBotKey)
}
}
2024-08-25 12:51:58 +00:00
keys := developers.Group("/keys").Name("Own Bots' Keys")
2024-08-24 12:28:10 +00:00
{
keys.Get("/", listBotKeys)
keys.Get("/:id", getBotKey)
keys.Post("/", createBotKey)
keys.Post("/:id/roll", rollBotKey)
keys.Put("/:id", editBotKey)
keys.Delete("/:id", revokeBotKey)
}
}
api.All("/*", func(c *fiber.Ctx) error {
return fiber.ErrNotFound
})
}
}