role commands

master
nima 2024-06-17 19:00:52 +03:30
parent d4722e4d17
commit dd6c3666af
1 changed files with 60 additions and 0 deletions

View File

@ -0,0 +1,60 @@
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) error {
if err := validation.ValidateStruct(command); err != nil {
return err
}
role := &m.Role{
Name: command.Name,
Created_at: time.Now(),
Modified_by: command.Modified_by ,
}
return r.Repository.CreateRole(role)
}
type UpdateRoleHandler struct {
Repository p.RoleCommandRepository
}
func (r *UpdateRoleHandler) Handle (id uint , command c.UpdateRoleCommand)(*m.Role , error) {
if err := validation.ValidateStruct(command); err != nil {
return nil , err
}
role := &m.Role{
Name: command.Name,
Modified_by: command.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)
}