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

173 lines
4.8 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)
app.Get("/.well-known/jwks", getJwk)
api := app.Group(baseURL).Name("API")
{
2024-11-27 13:57:10 +00:00
checkIn := api.Group("/check-in").Name("Daily Check In API")
2024-09-01 08:38:09 +00:00
{
2024-11-27 13:57:10 +00:00
checkIn.Get("/", listCheckInRecord)
checkIn.Get("/today", getTodayCheckIn)
checkIn.Post("/", doCheckIn)
2024-09-01 08:38:09 +00:00
}
notify := api.Group("/notifications").Name("Notifications API")
{
notify.Get("/", getNotifications)
notify.Get("/subscription", getNotifySubscriber)
notify.Post("/subscription", addNotifySubscriber)
notify.Delete("/subscription/:deviceId", removeNotifySubscriber)
2024-07-23 13:25:13 +00:00
notify.Put("/read", markNotificationReadBatch)
notify.Put("/read/:notificationId", markNotificationRead)
}
2024-09-17 06:50:05 +00:00
preferences := api.Group("/preferences").Name("Preferences API")
{
preferences.Get("/auth", getAuthPreference)
preferences.Put("/auth", updateAuthPreference)
2024-09-17 06:50:05 +00:00
preferences.Get("/notifications", getNotificationPreference)
preferences.Put("/notifications", updateNotificationPreference)
}
2024-09-19 13:02:21 +00:00
reports := api.Group("/reports").Name("Reports API")
{
abuse := reports.Group("/abuse").Name("Abuse Reports")
{
abuse.Get("/", listAbuseReports)
abuse.Get("/:id", getAbuseReport)
abuse.Put("/:id/status", updateAbuseReportStatus)
abuse.Post("/", createAbuseReport)
}
}
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)
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")
{
relations.Post("/", makeFriendship)
relations.Post("/block", makeBlockship)
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("/:relatedId", makeFriendship)
2024-07-23 16:04:21 +00:00
relations.Post("/:relatedId/accept", acceptFriend)
relations.Post("/:relatedId/decline", declineFriend)
}
2024-09-19 14:18:22 +00:00
me.Post("/password-reset", requestResetPassword)
me.Patch("/password-reset", confirmResetPassword)
2024-09-19 14:18:22 +00:00
me.Post("/deletion", requestDeleteAccount)
me.Patch("/deletion", confirmDeleteAccount)
}
directory := api.Group("/users/:alias").Name("User Directory")
{
directory.Get("/", getOtherUserinfo)
2024-06-26 12:05:28 +00:00
directory.Get("/status", getStatus)
2024-11-27 13:57:10 +00:00
directory.Get("/check-in", listOtherUserCheckInRecord)
}
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)
2024-09-15 18:37:02 +00:00
auth.Patch("/", doAuthTicketCheck)
2024-06-26 06:47:34 +00:00
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)
2024-08-25 13:35:22 +00:00
keys := bots.Group("/:botId/keys").Name("Bots' Keys")
2024-08-25 12:51:58 +00:00
{
keys.Get("/", listBotKeys)
keys.Post("/", createBotKey)
2024-08-25 16:44:10 +00:00
keys.Post("/:id/roll", rollBotKey)
keys.Put("/:id", editBotKey)
keys.Delete("/:id", revokeBotKey)
2024-08-25 12:51:58 +00:00
}
}
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
})
}
}