From 5561a9ee8c0b9a99a892a921fca0ea4d2f158338 Mon Sep 17 00:00:00 2001 From: valitovgaziz Date: Tue, 10 Mar 2026 00:07:19 +0500 Subject: [PATCH] modified: main_dc/docker-compose.yml modified: main_dc/yalarba/api_yal/cmd/main.go modified: main_dc/yalarba/api_yal/internal/domain/auth/dto.go modified: main_dc/yalarba/api_yal/internal/domain/auth/handler.go modified: main_dc/yalarba/api_yal/internal/domain/auth/servcie.go add AuthRes and UserInfo structs for request after auth --- main_dc/docker-compose.yml | 2 -- main_dc/yalarba/api_yal/cmd/main.go | 5 ++-- .../api_yal/internal/domain/auth/dto.go | 26 +++++++++++++++++- .../api_yal/internal/domain/auth/handler.go | 6 ++++- .../api_yal/internal/domain/auth/servcie.go | 27 +++++++++++++++++-- 5 files changed, 58 insertions(+), 8 deletions(-) diff --git a/main_dc/docker-compose.yml b/main_dc/docker-compose.yml index a1f8aab..487b5f5 100644 --- a/main_dc/docker-compose.yml +++ b/main_dc/docker-compose.yml @@ -275,8 +275,6 @@ services: build: context: ./yalarba/api_yal # Укажите правильный путь к вашему проекту dockerfile: Dockerfile - ports: - - "8787:8787" container_name: api_yal restart: unless-stopped env_file: diff --git a/main_dc/yalarba/api_yal/cmd/main.go b/main_dc/yalarba/api_yal/cmd/main.go index d2f63ea..28cc68e 100644 --- a/main_dc/yalarba/api_yal/cmd/main.go +++ b/main_dc/yalarba/api_yal/cmd/main.go @@ -63,9 +63,10 @@ func main() { r := router.SetupRouter(db, cfg) // Создаем и запускаем сервер - srv := server.NewServer(cfg.ServerPort, r) + strServerPort := ":" + cfg.AppPort + srv := server.NewServer(strServerPort, r) - log.Printf("Server starting on port %s", ":8787") + log.Printf("Server starting on port %s", strServerPort) if err := srv.ListenAndServe(); err != nil && err != http.ErrServerClosed { log.Fatalf("Server failed to start: %v", err) } diff --git a/main_dc/yalarba/api_yal/internal/domain/auth/dto.go b/main_dc/yalarba/api_yal/internal/domain/auth/dto.go index 1f25415..0279c35 100644 --- a/main_dc/yalarba/api_yal/internal/domain/auth/dto.go +++ b/main_dc/yalarba/api_yal/internal/domain/auth/dto.go @@ -1,6 +1,6 @@ package auth -import () +import "time" // RegisterRequest - запрос на регистрацию type RegisterRequest struct { @@ -9,3 +9,27 @@ type RegisterRequest struct { FirstName string `json:"first_name" validate:"required"` LastName string `json:"last_name" validate:"required"` } + +// LoginRequest - запрос на вход +type LoginRequest struct { + Email string `json:"email" validate:"required,email"` + Password string `json:"password" validate:"required"` +} + +// AuthResponse структура ответа при успешной аутентификации +type AuthResponse struct { + Token string `json:"token"` + RefreshToken string `json:"refresh_token,omitempty"` + ExpiresAt time.Time `json:"expires_at"` + User UserInfo `json:"user"` +} + +// UserInfo информация о пользователе для ответа +type UserInfo struct { + ID uint `json:"id"` + Email string `json:"email"` + FirstName string `json:"first_name"` + LastName string `json:"last_name"` + FullName string `json:"full_name"` + Role string `json:"role"` +} diff --git a/main_dc/yalarba/api_yal/internal/domain/auth/handler.go b/main_dc/yalarba/api_yal/internal/domain/auth/handler.go index 18b239d..d85c4f9 100644 --- a/main_dc/yalarba/api_yal/internal/domain/auth/handler.go +++ b/main_dc/yalarba/api_yal/internal/domain/auth/handler.go @@ -6,6 +6,8 @@ import ( "fmt" "net/http" + "api_yal/internal/logger" + "github.com/go-playground/validator/v10" ) @@ -25,7 +27,8 @@ func NewAuthHandler(authService *AuthService) *AuthHandler { // Register регистрация аккаунта пользователя func (h *AuthHandler) Register(w http.ResponseWriter, r *http.Request) { - + l := logger.Get() + l.Debug("Регистрация нового пользователя AuthHandler") var req RegisterRequest if err := json.NewDecoder(r.Body).Decode(&req); err != nil { http.Error(w, "Invalid request body", http.StatusBadRequest) @@ -52,4 +55,5 @@ func (h *AuthHandler) Register(w http.ResponseWriter, r *http.Request) { return } + AuthService.Register(req) } diff --git a/main_dc/yalarba/api_yal/internal/domain/auth/servcie.go b/main_dc/yalarba/api_yal/internal/domain/auth/servcie.go index e943787..348d12a 100644 --- a/main_dc/yalarba/api_yal/internal/domain/auth/servcie.go +++ b/main_dc/yalarba/api_yal/internal/domain/auth/servcie.go @@ -1,6 +1,13 @@ package auth -import () +import ( + "errors" + + "api_yal/internal/logger" + "api_yal/internal/models" + + "golang.org/x/crypto/bcrypt" +) type AuthService struct { } @@ -8,4 +15,20 @@ type AuthService struct { func NewAuthService() *AuthService { return &AuthService{ } -} \ No newline at end of file +} + +func (s *AuthService) Register(regReq RegisterRequest) (AuthResponse, error) { + l := logger.Get() + l.Debug("Регистрация пользователя AuthSerice") + + // Хешируем пароль + hashedPassword, err := bcrypt.GenerateFromPassword([]byte(regReq.Password), bcrypt.DefaultCost) + if err != nil { + return nil, err + } + + newAcc := &models.Account{ + Email: regReq.Email, + + } +}