fix: исправлена регистрация - добавлена поддержка JSON полей
- Исправлена конвертация models.JSON в PostgreSQL - Добавлено детальное логирование в AuthService - Обновлены структуры LoginResponse с UserResponse и OrganizationResponse - Исправлены методы Create/GetByID/Update в OrganizationRepository - Протестирована полная регистрация и аутентификация Регистрация и login работают корректно
This commit is contained in:
@@ -3,6 +3,7 @@ package repository
|
||||
import (
|
||||
"context"
|
||||
"database/sql"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
|
||||
"erp-mvp/core-service/internal/models"
|
||||
@@ -29,7 +30,13 @@ func (r *organizationRepository) Create(ctx context.Context, org *models.Organiz
|
||||
VALUES ($1, $2, $3, $4, $5)
|
||||
`
|
||||
|
||||
_, err := r.db.ExecContext(ctx, query, org.ID, org.Name, org.Type, org.Settings, org.CreatedAt)
|
||||
// Конвертируем JSON в строку
|
||||
settingsJSON, err := json.Marshal(org.Settings)
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to marshal settings: %w", err)
|
||||
}
|
||||
|
||||
_, err = r.db.ExecContext(ctx, query, org.ID, org.Name, org.Type, string(settingsJSON), org.CreatedAt)
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to create organization: %w", err)
|
||||
}
|
||||
@@ -44,12 +51,13 @@ func (r *organizationRepository) GetByID(ctx context.Context, id uuid.UUID) (*mo
|
||||
WHERE id = $1
|
||||
`
|
||||
|
||||
var settingsJSON []byte
|
||||
org := &models.Organization{}
|
||||
err := r.db.QueryRowContext(ctx, query, id).Scan(
|
||||
&org.ID,
|
||||
&org.Name,
|
||||
&org.Type,
|
||||
&org.Settings,
|
||||
&settingsJSON,
|
||||
&org.CreatedAt,
|
||||
)
|
||||
|
||||
@@ -60,6 +68,16 @@ func (r *organizationRepository) GetByID(ctx context.Context, id uuid.UUID) (*mo
|
||||
return nil, fmt.Errorf("failed to get organization: %w", err)
|
||||
}
|
||||
|
||||
// Конвертируем JSON строку в map
|
||||
if len(settingsJSON) > 0 {
|
||||
err = json.Unmarshal(settingsJSON, &org.Settings)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to unmarshal settings: %w", err)
|
||||
}
|
||||
} else {
|
||||
org.Settings = make(models.JSON)
|
||||
}
|
||||
|
||||
return org, nil
|
||||
}
|
||||
|
||||
@@ -70,7 +88,13 @@ func (r *organizationRepository) Update(ctx context.Context, org *models.Organiz
|
||||
WHERE id = $1
|
||||
`
|
||||
|
||||
result, err := r.db.ExecContext(ctx, query, org.ID, org.Name, org.Type, org.Settings)
|
||||
// Конвертируем JSON в строку
|
||||
settingsJSON, err := json.Marshal(org.Settings)
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to marshal settings: %w", err)
|
||||
}
|
||||
|
||||
result, err := r.db.ExecContext(ctx, query, org.ID, org.Name, org.Type, string(settingsJSON))
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to update organization: %w", err)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user