60 lines
1.1 KiB
Go
60 lines
1.1 KiB
Go
package commands
|
|
|
|
import (
|
|
m "netina/models"
|
|
c "netina/models/commands"
|
|
p "netina/repositories/role"
|
|
"netina/validation"
|
|
"time"
|
|
)
|
|
|
|
type CreateRoleHandler struct {
|
|
Repository p.RoleCommandRepository
|
|
}
|
|
|
|
|
|
|
|
func (r *CreateRoleHandler) Handle(command c.CreateRoleCommand , modified_by string) error {
|
|
|
|
if err := validation.ValidateStruct(command); err != nil {
|
|
return err
|
|
}
|
|
|
|
role := &m.Role{
|
|
Name: command.Name,
|
|
Created_at: time.Now(),
|
|
Modified_by: modified_by ,
|
|
}
|
|
|
|
return r.Repository.CreateRole(role)
|
|
}
|
|
|
|
|
|
type UpdateRoleHandler struct {
|
|
Repository p.RoleCommandRepository
|
|
}
|
|
|
|
|
|
func (r *UpdateRoleHandler) Handle (id uint , command c.UpdateRoleCommand , modified_by string)(*m.Role , error) {
|
|
if err := validation.ValidateStruct(command); err != nil {
|
|
return nil , err
|
|
}
|
|
|
|
role := &m.Role{
|
|
Name: command.Name,
|
|
Modified_by: modified_by,
|
|
Modified_at: time.Now(),
|
|
}
|
|
|
|
return r.Repository.UpdateRole(id , role)
|
|
}
|
|
|
|
|
|
type RemoveRoleHandler struct {
|
|
Repository p.RoleCommandRepository
|
|
}
|
|
|
|
|
|
func (r *RemoveRoleHandler) Handle (id uint )error {
|
|
return r.Repository.RemoveRole(id)
|
|
} |