Hub-Api/commands/user_handler.go

65 lines
1.2 KiB
Go

package commands
import (
m "netina/models"
c "netina/models/commands"
u "netina/repositories/user"
"netina/validation"
"time"
)
type CreateUserHandler struct {
Repository u.UserCommandRepository
}
func (r *CreateUserHandler) Handle(command c.CreateUserCommand , modified_by string) error {
if err := validation.ValidateStruct(command); err != nil {
return err
}
User := &m.User{
Name: command.Name,
PhoneNumber: command.PhoneNumber,
Role_id: command.Role_id,
Created_at: time.Now(),
Modified_by: modified_by,
}
return r.Repository.CreateUser(User)
}
type UpdateUserHandler struct {
Repository u.UserCommandRepository
}
func (r *UpdateUserHandler) Handle (id uint , command c.UpdateUserCommand , modified_by string)(*m.User , error) {
if err := validation.ValidateStruct(command); err != nil {
return nil , err
}
User := &m.User{
Name: command.Name,
PhoneNumber: command.PhoneNumber,
Role_id: command.Role_id,
Modified_by: modified_by,
Modified_at: time.Now(),
}
return r.Repository.UpdateUser(id , User)
}
type RemoveUserHandler struct {
Repository u.UserCommandRepository
}
func (r *RemoveUserHandler) Handle (id uint )error {
return r.Repository.RemoveUser(id)
}