From f1a5395d6864dbd2f51e43f511d9c810c95b3df5 Mon Sep 17 00:00:00 2001 From: Habib Fatkhul Rohman Date: Mon, 3 Nov 2025 13:41:49 +0700 Subject: [PATCH] feat(user): Add client information to UserResponse and preload client in GetUserById --- modules/user/dto/user_dto.go | 1 + modules/user/repository/user_repository.go | 1 + modules/user/service/user_service.go | 8 ++++++++ 3 files changed, 10 insertions(+) diff --git a/modules/user/dto/user_dto.go b/modules/user/dto/user_dto.go index 70278d3..428741b 100644 --- a/modules/user/dto/user_dto.go +++ b/modules/user/dto/user_dto.go @@ -74,6 +74,7 @@ type ( Email string `json:"email"` PhotoUrl string `json:"photo_url"` Roles []UserRolesResponse `json:"roles,omitempty"` + Client dto.IdNameResponse `json:"client"` } UserRolesResponse struct { diff --git a/modules/user/repository/user_repository.go b/modules/user/repository/user_repository.go index 1ee2549..6051290 100644 --- a/modules/user/repository/user_repository.go +++ b/modules/user/repository/user_repository.go @@ -144,6 +144,7 @@ func (r *userRepository) GetUserById(ctx context.Context, tx *gorm.DB, userId st var user entities.M_User if err := tx.WithContext(ctx). + Preload("Client"). Preload("Roles"). Where("id = ?", userId). Take(&user).Error; err != nil { diff --git a/modules/user/service/user_service.go b/modules/user/service/user_service.go index 1d02562..42736c8 100644 --- a/modules/user/service/user_service.go +++ b/modules/user/service/user_service.go @@ -12,6 +12,7 @@ import ( authService "github.com/Caknoooo/go-gin-clean-starter/modules/auth/service" "github.com/Caknoooo/go-gin-clean-starter/modules/user/dto" "github.com/Caknoooo/go-gin-clean-starter/modules/user/repository" + pkgdto "github.com/Caknoooo/go-gin-clean-starter/pkg/dto" "github.com/Caknoooo/go-gin-clean-starter/pkg/utils" "github.com/google/uuid" "gorm.io/gorm" @@ -111,6 +112,12 @@ func (s *userService) GetUserById(ctx context.Context, userId string) (dto.UserR }) } + var client pkgdto.IdNameResponse + client = pkgdto.IdNameResponse{ + ID: user.Client.ID.String(), + Name: user.Client.Name, + } + return dto.UserResponse{ ID: user.ID.String(), Name: user.Name, @@ -121,6 +128,7 @@ func (s *userService) GetUserById(ctx context.Context, userId string) (dto.UserR Phone: user.Phone, PhotoUrl: user.PhotoUrl, Roles: roles, + Client: client, }, nil }