From dd6c3666af020a84d77dcf8af725c870fd0e1092 Mon Sep 17 00:00:00 2001 From: nima Date: Mon, 17 Jun 2024 19:00:52 +0330 Subject: [PATCH] role commands --- commands/role_handler.go | 60 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 commands/role_handler.go diff --git a/commands/role_handler.go b/commands/role_handler.go new file mode 100644 index 0000000..6fb6804 --- /dev/null +++ b/commands/role_handler.go @@ -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) +} \ No newline at end of file