36 lines
929 B
Go
36 lines
929 B
Go
package dto
|
|
|
|
import "smoop-api/internal/models"
|
|
|
|
type UserDto struct {
|
|
ID uint `json:"id"`
|
|
Username string `json:"username"`
|
|
Role models.Role `json:"role"`
|
|
}
|
|
|
|
type UserRoleDto struct {
|
|
Role models.Role `json:"role" binding:"required,oneof=admin user"`
|
|
}
|
|
|
|
// CreateUserDto is used by POST /users/create to create a new user with a role.
|
|
// Role must be one of: "admin" | "user".
|
|
type CreateUserDto struct {
|
|
Username string `json:"username" binding:"required"`
|
|
Password string `json:"password" binding:"required"`
|
|
Role string `json:"role" binding:"required,oneof=admin user"`
|
|
}
|
|
|
|
type UpdateUserDto struct {
|
|
Username string `json:"username,omitempty"`
|
|
Password string `json:"password,omitempty"`
|
|
Role string `json:"role,omitempty"`
|
|
}
|
|
|
|
func MapUser(u models.User) UserDto {
|
|
return UserDto{
|
|
ID: u.ID,
|
|
Username: u.Username,
|
|
Role: u.Role,
|
|
}
|
|
}
|