From ef055e1144b1943a30a82cb73e34d6167de214d7 Mon Sep 17 00:00:00 2001 From: LittleSheep Date: Sun, 9 Jun 2024 00:12:03 +0800 Subject: [PATCH] :sparkles: Able to read current user's realm profile --- .idea/dataSources.local.xml | 2 +- .idea/workspace.xml | 14 ++++++++------ pkg/server/realm_members_api.go | 14 ++++++++++++++ pkg/server/startup.go | 1 + 4 files changed, 24 insertions(+), 7 deletions(-) diff --git a/.idea/dataSources.local.xml b/.idea/dataSources.local.xml index 9d11ba7..e405aea 100644 --- a/.idea/dataSources.local.xml +++ b/.idea/dataSources.local.xml @@ -1,6 +1,6 @@ - + " diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 1eed85a..881b4af 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -4,9 +4,11 @@ - + + - + + - @@ -166,7 +167,8 @@ - true diff --git a/pkg/server/realm_members_api.go b/pkg/server/realm_members_api.go index 7eef6fc..ac488ad 100644 --- a/pkg/server/realm_members_api.go +++ b/pkg/server/realm_members_api.go @@ -10,6 +10,7 @@ import ( func listRealmMembers(c *fiber.Ctx) error { alias := c.Params("realm") + if realm, err := services.GetRealmWithAlias(alias); err != nil { return fiber.NewError(fiber.StatusNotFound, err.Error()) } else if members, err := services.ListRealmMember(realm.ID); err != nil { @@ -19,6 +20,19 @@ func listRealmMembers(c *fiber.Ctx) error { } } +func getMyRealmMember(c *fiber.Ctx) error { + alias := c.Params("realm") + user := c.Locals("principal").(models.Account) + + if realm, err := services.GetRealmWithAlias(alias); err != nil { + return fiber.NewError(fiber.StatusNotFound, err.Error()) + } else if member, err := services.GetRealmMember(user.ID, realm.ID); err != nil { + return fiber.NewError(fiber.StatusNotFound, err.Error()) + } else { + return c.JSON(member) + } +} + func addRealmMember(c *fiber.Ctx) error { user := c.Locals("principal").(models.Account) alias := c.Params("realm") diff --git a/pkg/server/startup.go b/pkg/server/startup.go index 021ffe8..0e4a2ff 100644 --- a/pkg/server/startup.go +++ b/pkg/server/startup.go @@ -122,6 +122,7 @@ func NewServer() { realms.Get("/me/available", authMiddleware, listAvailableRealm) realms.Get("/:realm", getRealm) realms.Get("/:realm/members", listRealmMembers) + realms.Get("/:realm/members/me", authMiddleware, getMyRealmMember) realms.Post("/", authMiddleware, createRealm) realms.Put("/:realmId", authMiddleware, editRealm) realms.Delete("/:realmId", authMiddleware, deleteRealm)