Add users

This commit is contained in:
Aditya Siregar 2025-08-15 22:53:40 +07:00
parent 5966301165
commit 8322bbef18
5 changed files with 7 additions and 1 deletions

View File

@ -49,6 +49,7 @@ type LoginResponse struct {
type UserResponse struct { type UserResponse struct {
ID uuid.UUID `json:"id"` ID uuid.UUID `json:"id"`
Username string `json:"username"`
Name string `json:"name"` Name string `json:"name"`
Email string `json:"email"` Email string `json:"email"`
IsActive bool `json:"is_active"` IsActive bool `json:"is_active"`

View File

@ -41,6 +41,7 @@ func (p *Permissions) Scan(value interface{}) error {
type User struct { type User struct {
ID uuid.UUID `gorm:"type:uuid;primary_key;default:gen_random_uuid()" json:"id"` ID uuid.UUID `gorm:"type:uuid;primary_key;default:gen_random_uuid()" json:"id"`
Username string `gorm:"uniqueIndex;not null;size:100" json:"username" validate:"required,min=1,max=100"`
Name string `gorm:"not null;size:255" json:"name" validate:"required,min=1,max=255"` Name string `gorm:"not null;size:255" json:"name" validate:"required,min=1,max=255"`
Email string `gorm:"uniqueIndex;not null;size:255" json:"email" validate:"required,email"` Email string `gorm:"uniqueIndex;not null;size:255" json:"email" validate:"required,email"`
PasswordHash string `gorm:"not null;size:255" json:"-"` PasswordHash string `gorm:"not null;size:255" json:"-"`

View File

@ -351,6 +351,7 @@ func (p *UserProcessorImpl) BulkCreateUsersWithTransaction(ctx context.Context,
user := &entities.User{ user := &entities.User{
ID: uuid.New(), ID: uuid.New(),
Username: req.Email,
Name: req.Name, Name: req.Name,
Email: req.Email, Email: req.Email,
PasswordHash: string(hashedPassword), PasswordHash: string(hashedPassword),

View File

@ -81,7 +81,7 @@ func (r *Router) addAppRoutes(rg *gin.Engine) {
users.Use(r.authMiddleware.RequireAuth()) users.Use(r.authMiddleware.RequireAuth())
{ {
users.GET("", r.userHandler.ListUsers) users.GET("", r.userHandler.ListUsers)
users.POST("/bulk", r.userHandler.BulkCreateUsers) users.POST("/bulk", r.userHandler.BulkCreateUsersAsync)
users.POST("/bulk/async", r.userHandler.BulkCreateUsersAsync) users.POST("/bulk/async", r.userHandler.BulkCreateUsersAsync)
users.GET("/bulk/job/:jobId", r.userHandler.GetBulkJobStatus) users.GET("/bulk/job/:jobId", r.userHandler.GetBulkJobStatus)
users.GET("/profile", r.userHandler.GetProfile) users.GET("/profile", r.userHandler.GetProfile)

View File

@ -10,6 +10,7 @@ func CreateUserRequestToEntity(req *contract.CreateUserRequest, passwordHash str
return nil return nil
} }
return &entities.User{ return &entities.User{
Username: req.Email,
Name: req.Name, Name: req.Name,
Email: req.Email, Email: req.Email,
PasswordHash: passwordHash, PasswordHash: passwordHash,
@ -26,6 +27,7 @@ func UpdateUserEntity(existing *entities.User, req *contract.UpdateUserRequest)
} }
if req.Email != nil { if req.Email != nil {
existing.Email = *req.Email existing.Email = *req.Email
existing.Username = *req.Email
} }
if req.IsActive != nil { if req.IsActive != nil {
existing.IsActive = *req.IsActive existing.IsActive = *req.IsActive
@ -40,6 +42,7 @@ func EntityToContract(user *entities.User) *contract.UserResponse {
resp := &contract.UserResponse{ resp := &contract.UserResponse{
ID: user.ID, ID: user.ID,
Username: user.Username,
Name: user.Name, Name: user.Name,
Email: user.Email, Email: user.Email,
IsActive: user.IsActive, IsActive: user.IsActive,