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

105 lines
2.9 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)
notify.Put("/batch/read", markNotificationReadBatch)
notify.Put("/:notificationId/read", markNotificationRead)
}
api.Get("/users/lookup", lookupAccount)
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
friends := me.Group("/relations").Name("Relations")
{
friends.Get("/", listRelationship)
friends.Get("/:relatedId", getRelationship)
friends.Post("/", makeFriendship)
friends.Post("/:relatedId", makeFriendship)
friends.Put("/:relatedId", editRelationship)
friends.Delete("/:relatedId", deleteRelationship)
}
}
directory := api.Group("/users/:alias").Name("User Directory")
{
directory.Get("/", getOtherUserinfo)
2024-06-26 12:05:28 +00:00
directory.Get("/status", getStatus)
}
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)
}
api.All("/*", func(c *fiber.Ctx) error {
return fiber.ErrNotFound
})
}
}