c5b80129d3
modified: main_dc/yalarba/api_es/internal/handler/user_handler.go modified: main_dc/yalarba/api_es/internal/middleware/auth.go modified: main_dc/yalarba/api_es/internal/router/router.go set authorization with cooky and bearer jwt token
91 lines
3.1 KiB
Go
91 lines
3.1 KiB
Go
package dto
|
|
|
|
import (
|
|
"api_es/internal/models"
|
|
"time"
|
|
)
|
|
|
|
// RegisterRequest - запрос на регистрацию
|
|
type RegisterRequest struct {
|
|
Email string `json:"email" validate:"required,email"`
|
|
Password string `json:"password" validate:"required,min=6"`
|
|
FullName string `json:"full_name" validate:"required"`
|
|
FirstName string `json:"first_name" validate:"required"`
|
|
LastName string `json:"last_name" validate:"required"`
|
|
Phone string `json:"phone"`
|
|
City string `json:"city"`
|
|
}
|
|
|
|
// LoginRequest - запрос на вход
|
|
type LoginRequest struct {
|
|
Email string `json:"email" validate:"required,email"`
|
|
Password string `json:"password" validate:"required"`
|
|
}
|
|
|
|
// UpdateUserRequest - запрос на обновление пользователя
|
|
type UpdateUserRequest struct {
|
|
FullName string `json:"full_name"`
|
|
FirstName string `json:"first_name"`
|
|
LastName string `json:"last_name"`
|
|
Phone string `json:"phone"`
|
|
City string `json:"city"`
|
|
OrganizationForm string `json:"organization_form"`
|
|
OrganizationName string `json:"organization_name"`
|
|
OrganizationShort string `json:"organization_short"`
|
|
INN string `json:"inn"`
|
|
PersonalINN string `json:"personal_inn"`
|
|
}
|
|
|
|
// UserResponse - ответ с данными пользователя
|
|
type UserResponse struct {
|
|
ID uint `json:"id"`
|
|
Email string `json:"email"`
|
|
FullName string `json:"full_name"`
|
|
FirstName string `json:"first_name"`
|
|
LastName string `json:"last_name"`
|
|
Phone string `json:"phone"`
|
|
City string `json:"city"`
|
|
OrganizationForm string `json:"organization_form"`
|
|
OrganizationName string `json:"organization_name"`
|
|
OrganizationShort string `json:"organization_short"`
|
|
INN string `json:"inn"`
|
|
PersonalINN string `json:"personal_inn"`
|
|
IsActive bool `json:"is_active"`
|
|
IsVerified bool `json:"is_verified"`
|
|
Role string `json:"role"`
|
|
CreatedAt time.Time `json:"created_at"`
|
|
}
|
|
|
|
// AuthResponse - ответ с токеном
|
|
type AuthResponse struct {
|
|
Token string `json:"token"`
|
|
User UserResponse `json:"user"`
|
|
}
|
|
|
|
// ToUserResponse преобразует модель в DTO
|
|
func ToUserResponse(user *models.User) UserResponse {
|
|
return UserResponse{
|
|
ID: user.ID,
|
|
Email: user.Email,
|
|
FullName: user.FullName,
|
|
FirstName: user.FirstName,
|
|
LastName: user.LastName,
|
|
Phone: user.Phone,
|
|
City: user.City,
|
|
OrganizationForm: user.OrganizationForm,
|
|
OrganizationName: user.OrganizationName,
|
|
OrganizationShort: user.OrganizationShort,
|
|
INN: user.INN,
|
|
PersonalINN: user.PersonalINN,
|
|
IsActive: user.IsActive,
|
|
IsVerified: user.IsVerified,
|
|
Role: user.Role,
|
|
CreatedAt: user.CreatedAt,
|
|
}
|
|
}
|
|
|
|
// dto/auth.go (добавляем если нужно)
|
|
type RefreshTokenRequest struct {
|
|
RefreshToken string `json:"refresh_token" validate:"required"`
|
|
}
|