1c74d12df6
modified: main_dc/yalarba/api_es/go.sum new file: main_dc/yalarba/api_es/internal/dto/user.go new file: main_dc/yalarba/api_es/internal/handler/all_handlers.go new file: main_dc/yalarba/api_es/internal/handler/auth_handler.go new file: main_dc/yalarba/api_es/internal/handler/user_handler.go deleted: main_dc/yalarba/api_es/internal/handlers/all_handlers.go deleted: main_dc/yalarba/api_es/internal/handlers/auth_handler.go deleted: main_dc/yalarba/api_es/internal/handlers/user_handler.go new file: main_dc/yalarba/api_es/internal/middleware/auth.go deleted: main_dc/yalarba/api_es/internal/repositories/user_repository.go new file: main_dc/yalarba/api_es/internal/repository/user_repository.go new file: main_dc/yalarba/api_es/internal/service/user_service.go new file: main_dc/yalarba/api_es/internal/utils/jwt.go add service, handler, repository for user model
86 lines
3.0 KiB
Go
86 lines
3.0 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,
|
|
}
|
|
}
|