Add user management
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
package models
|
||||
|
||||
import "errors"
|
||||
|
||||
type User struct {
|
||||
ID string `json:"id"`
|
||||
Name string `json:"name"`
|
||||
Role string `json:"role"`
|
||||
HashedPassword string `json:"hashed_password"`
|
||||
CreatedAt string `json:"created_at"`
|
||||
}
|
||||
|
||||
type CreateUserRequest struct {
|
||||
Name string `json:"name"`
|
||||
Role string `json:"role"`
|
||||
Password string `json:"password"`
|
||||
}
|
||||
|
||||
func ValidateCreateUserRequest(req *CreateUserRequest) error {
|
||||
if req.Name == "" {
|
||||
return errors.New("name is required")
|
||||
}
|
||||
if req.Role == "" {
|
||||
return errors.New("role is required")
|
||||
}
|
||||
if req.Role != "admin" && req.Role != "user" {
|
||||
return errors.New("role must be either 'admin' or 'user'")
|
||||
}
|
||||
if req.Password == "" {
|
||||
return errors.New("password is required")
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
type UpdateUserRequest struct {
|
||||
Name string `json:"name"`
|
||||
Role string `json:"role"`
|
||||
}
|
||||
|
||||
func ValidateUpdateUserRequest(req *UpdateUserRequest) error {
|
||||
if req.Name == "" {
|
||||
return errors.New("name is required")
|
||||
}
|
||||
if req.Role == "" {
|
||||
return errors.New("role is required")
|
||||
}
|
||||
if req.Role != "admin" && req.Role != "user" {
|
||||
return errors.New("role must be either 'admin' or 'user'")
|
||||
}
|
||||
return nil
|
||||
}
|
||||
Reference in New Issue
Block a user