From 5dc8b5cf66309d52039be6659d7d248b5e76d058 Mon Sep 17 00:00:00 2001 From: valitovgaziz Date: Wed, 4 Mar 2026 17:32:39 +0500 Subject: [PATCH] modified: main_dc/yalarba/api_yal/go.sum renamed: main_dc/yalarba/api_yal/internal/dto/account_dto.go -> main_dc/yalarba/api_yal/internal/domain/auth/dto.go new file: main_dc/yalarba/api_yal/internal/domain/auth/handler.go new file: main_dc/yalarba/api_yal/internal/domain/auth/servcie.go new file: main_dc/yalarba/api_yal/internal/domain/auth/servcie_impl.go modified: main_dc/yalarba/api_yal/internal/handlers/allHandlers.go modified: main_dc/yalarba/api_yal/internal/handlers/auth.go reimplement arch to ddd + layered structure --- main_dc/yalarba/api_yal/go.sum | 1 + .../account_dto.go => domain/auth/dto.go} | 2 +- .../api_yal/internal/domain/auth/handler.go | 59 +++++++++++++++++++ .../api_yal/internal/domain/auth/servcie.go | 1 + .../internal/domain/auth/servcie_impl.go | 1 + .../api_yal/internal/handlers/allHandlers.go | 10 ++-- .../yalarba/api_yal/internal/handlers/auth.go | 57 ------------------ 7 files changed, 68 insertions(+), 63 deletions(-) rename main_dc/yalarba/api_yal/internal/{dto/account_dto.go => domain/auth/dto.go} (96%) create mode 100644 main_dc/yalarba/api_yal/internal/domain/auth/handler.go create mode 100644 main_dc/yalarba/api_yal/internal/domain/auth/servcie.go create mode 100644 main_dc/yalarba/api_yal/internal/domain/auth/servcie_impl.go diff --git a/main_dc/yalarba/api_yal/go.sum b/main_dc/yalarba/api_yal/go.sum index 2d0c35d..e9c0900 100644 --- a/main_dc/yalarba/api_yal/go.sum +++ b/main_dc/yalarba/api_yal/go.sum @@ -41,6 +41,7 @@ golang.org/x/crypto v0.46.0 h1:cKRW/pmt1pKAfetfu+RCEvjvZkA9RimPbh7bhFjGVBU= golang.org/x/crypto v0.46.0/go.mod h1:Evb/oLKmMraqjZ2iQTwDwvCtJkczlDuTmdJXoZVzqU0= golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ= golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.19.0 h1:vV+1eWNmZ5geRlYjzm2adRgW2/mcpevXNg50YZtPCE4= golang.org/x/sync v0.19.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= golang.org/x/sys v0.39.0 h1:CvCKL8MeisomCi6qNZ+wbb0DN9E5AATixKsvNtMoMFk= golang.org/x/sys v0.39.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= diff --git a/main_dc/yalarba/api_yal/internal/dto/account_dto.go b/main_dc/yalarba/api_yal/internal/domain/auth/dto.go similarity index 96% rename from main_dc/yalarba/api_yal/internal/dto/account_dto.go rename to main_dc/yalarba/api_yal/internal/domain/auth/dto.go index 3a1c461..1f25415 100644 --- a/main_dc/yalarba/api_yal/internal/dto/account_dto.go +++ b/main_dc/yalarba/api_yal/internal/domain/auth/dto.go @@ -1,4 +1,4 @@ -package dto +package auth import () diff --git a/main_dc/yalarba/api_yal/internal/domain/auth/handler.go b/main_dc/yalarba/api_yal/internal/domain/auth/handler.go new file mode 100644 index 0000000..603d127 --- /dev/null +++ b/main_dc/yalarba/api_yal/internal/domain/auth/handler.go @@ -0,0 +1,59 @@ +package auth + +import ( + "encoding/json" + "errors" + "fmt" + "net/http" + + "api_yal/internal/service" + + "github.com/go-playground/validator/v10" +) + +// AuthHandler обработчик для аутентификации +type AuthHandler struct { + accountService service.AccountService + validator *validator.Validate +} + +// NewAuthHandler создает новый экземпляр AuthHandler +func NewAuthHandler(accountService service.AccountService) *AuthHandler { + return &AuthHandler{ + accountService: accountService, + validator: validator.New(), + } +} + +// Register регистрация аккаунта пользователя +func (h *AuthHandler) Register(w http.ResponseWriter, r *http.Request) { + + var req RegisterRequest + if err := json.NewDecoder(r.Body).Decode(&req); err != nil { + http.Error(w, "Invalid request body", http.StatusBadRequest) + return + } + + if err := h.validator.Struct(req); err != nil { + var invalidValidationError *validator.InvalidValidationError + if errors.As(err, &invalidValidationError) { + http.Error(w, "Invalid request", http.StatusBadRequest) + return + } + + var errs []string + for _, err := range err.(validator.ValidationErrors) { + errs = append(errs, fmt.Sprintf("field %s is invalid: %s", err.Field(), err.Tag())) + } + + w.WriteHeader(http.StatusBadRequest) + json.NewEncoder(w).Encode(map[string]interface{}{ + "error": "Validation failed", + "fields": errs, + }) + return + } + + + +} \ No newline at end of file diff --git a/main_dc/yalarba/api_yal/internal/domain/auth/servcie.go b/main_dc/yalarba/api_yal/internal/domain/auth/servcie.go new file mode 100644 index 0000000..d701acc --- /dev/null +++ b/main_dc/yalarba/api_yal/internal/domain/auth/servcie.go @@ -0,0 +1 @@ +package auth \ No newline at end of file diff --git a/main_dc/yalarba/api_yal/internal/domain/auth/servcie_impl.go b/main_dc/yalarba/api_yal/internal/domain/auth/servcie_impl.go new file mode 100644 index 0000000..d701acc --- /dev/null +++ b/main_dc/yalarba/api_yal/internal/domain/auth/servcie_impl.go @@ -0,0 +1 @@ +package auth \ No newline at end of file diff --git a/main_dc/yalarba/api_yal/internal/handlers/allHandlers.go b/main_dc/yalarba/api_yal/internal/handlers/allHandlers.go index 45dacfb..f3395b2 100644 --- a/main_dc/yalarba/api_yal/internal/handlers/allHandlers.go +++ b/main_dc/yalarba/api_yal/internal/handlers/allHandlers.go @@ -1,17 +1,17 @@ package handlers -import () +import "api_yal/internal/service" type AllHandler struct { authHandler *AuthHandler } -func NewAllHandler() *AllHandler { +func NewAllHandler(accountHandler AccountHandler) *AllHandler { return &AllHandler{ - authHandler: NewAuthHandler(), + authHandler: NewAuthHandler(service.AccountService), } } -func (h *AllHandler) AuthHandler() *AuthHandler { - return h.authHandler +func (h *AllHandler) AccountHandler() AccountHandler { + return h.accountHandler } \ No newline at end of file diff --git a/main_dc/yalarba/api_yal/internal/handlers/auth.go b/main_dc/yalarba/api_yal/internal/handlers/auth.go index 07968ee..d2e1d98 100644 --- a/main_dc/yalarba/api_yal/internal/handlers/auth.go +++ b/main_dc/yalarba/api_yal/internal/handlers/auth.go @@ -1,59 +1,2 @@ package handlers -import ( - "encoding/json" - "errors" - "net/http" - - "api_yal/internal/dto" - "api_yal/internal/service" - - "github.com/go-playground/validator/v10" -) - -// AuthHandler обработчик для аутентификации -type AuthHandler struct { - accountService service.AccountService - validator *validator.Validate -} - -// NewAuthHandler создает новый экземпляр AuthHandler -func NewAuthHandler(accountService service.AccountService) *AuthHandler { - return &AuthHandler{ - accountService: accountService, - validator: validator.New(), - } -} - -// Register регистрация аккаунта пользователя -func (h *AuthHandler) Register(w http.ResponseWriter, r *http.Request) { - - var req dto.RegisterRequest - if err := json.NewDecoder(r.Body).Decode(&req); err != nil { - http.Error(w, "Invalid request body", http.StatusBadRequest) - return - } - - if err := h.validator.Struct(req); err != nil { - var invalidValidationError *validator.InvalidValidationError - if errors.As(err, &invalidValidationError) { - http.Error(w, "Invalid request", http.StatusBadRequest) - return - } - - var errs []string - for _, err := range err.(validator.ValidationErrors) { - errs = append(errs, fmt.Sprintf("field %s is invalid: %s", err.Field(), err.Tag())) - } - - w.WriteHeader(http.StatusBadRequest) - json.NewEncoder(w).Encode(map[string]interface{}{ - "error": "Validation failed", - "fields": errs, - }) - return - } - - - -} \ No newline at end of file