From d335f13732e944d310137251c042a7d659890653 Mon Sep 17 00:00:00 2001 From: Lucas Date: Thu, 15 Jan 2026 11:44:46 +0100 Subject: [PATCH] feat: add route to get specific user --- controller/users.go | 20 ++++++++++++++++++++ router/router.go | 1 + 2 files changed, 21 insertions(+) diff --git a/controller/users.go b/controller/users.go index f22f219..bb8dc9f 100644 --- a/controller/users.go +++ b/controller/users.go @@ -9,6 +9,26 @@ import ( "github.com/gin-gonic/gin" ) +func GetSpecificUser(ctx *gin.Context) { + + userId := ctx.Param("userId") + + if userId == "" { + ctx.JSON(http.StatusBadRequest, gin.H{"error": "User ID is required"}) + return + } + + users, err := initializers.DB.Users.FindMany( + db.Users.ID.Equals(userId), + ).With().Exec(ctx) + if err != nil { + ctx.JSON(http.StatusInternalServerError, gin.H{"Error": "Failed to fetch users"}) + return + } + + ctx.JSON(http.StatusOK, users) +} + func GetUsers(ctx *gin.Context) { users, err := initializers.DB.Users.FindMany( ).Exec(ctx) diff --git a/router/router.go b/router/router.go index 4fd8403..dc8887b 100644 --- a/router/router.go +++ b/router/router.go @@ -61,6 +61,7 @@ func setupProtectedRouter(router *gin.Engine) *gin.Engine { protectedRoute.POST("/areas/create", controller.CreateArea) protectedRoute.GET("/areas", controller.GetUserAreas) + protectedRoute.GET("/users/:userId", controller.GetSpecificUser) protectedRoute.GET("/services/:userId", controller.GetUserServices) protectedRoute.PATCH("/areas/:areaId/status", controller.UpdateAreaStatus) protectedRoute.DELETE("/areas/:areaId/delete", controller.DeleteArea)