To gitea and beyond, let's go(-yco)
This commit is contained in:
76
internal/dto/user.go
Normal file
76
internal/dto/user.go
Normal file
@@ -0,0 +1,76 @@
|
||||
package dto
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
"goyco/internal/database"
|
||||
)
|
||||
|
||||
type UserDTO struct {
|
||||
ID uint `json:"id"`
|
||||
Username string `json:"username"`
|
||||
Email string `json:"email,omitempty"`
|
||||
EmailVerified bool `json:"email_verified,omitempty"`
|
||||
EmailVerifiedAt *time.Time `json:"email_verified_at,omitempty"`
|
||||
CreatedAt time.Time `json:"created_at"`
|
||||
UpdatedAt time.Time `json:"updated_at"`
|
||||
}
|
||||
|
||||
type UserListDTO struct {
|
||||
Users []UserDTO `json:"users"`
|
||||
Count int `json:"count"`
|
||||
Limit int `json:"limit"`
|
||||
Offset int `json:"offset"`
|
||||
}
|
||||
|
||||
func ToUserDTO(user *database.User) UserDTO {
|
||||
if user == nil {
|
||||
return UserDTO{}
|
||||
}
|
||||
|
||||
return UserDTO{
|
||||
ID: user.ID,
|
||||
Username: user.Username,
|
||||
Email: user.Email,
|
||||
EmailVerified: user.EmailVerified,
|
||||
EmailVerifiedAt: user.EmailVerifiedAt,
|
||||
CreatedAt: user.CreatedAt,
|
||||
UpdatedAt: user.UpdatedAt,
|
||||
}
|
||||
}
|
||||
|
||||
func ToUserDTOs(users []database.User) []UserDTO {
|
||||
dtos := make([]UserDTO, len(users))
|
||||
for i := range users {
|
||||
dtos[i] = ToUserDTO(&users[i])
|
||||
}
|
||||
return dtos
|
||||
}
|
||||
|
||||
type SanitizedUserDTO struct {
|
||||
ID uint `json:"id"`
|
||||
Username string `json:"username"`
|
||||
CreatedAt time.Time `json:"created_at"`
|
||||
UpdatedAt time.Time `json:"updated_at"`
|
||||
}
|
||||
|
||||
func ToSanitizedUserDTO(user *database.User) SanitizedUserDTO {
|
||||
if user == nil {
|
||||
return SanitizedUserDTO{}
|
||||
}
|
||||
|
||||
return SanitizedUserDTO{
|
||||
ID: user.ID,
|
||||
Username: user.Username,
|
||||
CreatedAt: user.CreatedAt,
|
||||
UpdatedAt: user.UpdatedAt,
|
||||
}
|
||||
}
|
||||
|
||||
func ToSanitizedUserDTOs(users []database.User) []SanitizedUserDTO {
|
||||
dtos := make([]SanitizedUserDTO, len(users))
|
||||
for i := range users {
|
||||
dtos[i] = ToSanitizedUserDTO(&users[i])
|
||||
}
|
||||
return dtos
|
||||
}
|
||||
Reference in New Issue
Block a user