modified: main_dc/yalarba/api_tp/internal/handlers/auth.go
modified: main_dc/yalarba/api_tp/internal/handlers/oauth.go modified: main_dc/yalarba/api_tp/internal/handlers/oauth_yandex.go modified: main_dc/yalarba/api_tp/internal/models/user.go modified: main_dc/yalarba/api_tp/internal/repository/user_repository.go modified: main_dc/yalarba/api_tp/internal/service/user_service.go modified: main_dc/yalarba/api_tp/internal/utils/oauth_utils.go modified: main_dc/yalarba/api_tp/pkg/database/postgres.go change naming for user into api
This commit is contained in:
@@ -32,7 +32,7 @@ func (h *AuthHandler) Register(w http.ResponseWriter, r *http.Request) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Проверяем, существует ли пользователь
|
// Проверяем, существует ли пользователь
|
||||||
var existingUser models.User
|
var existingUser models.UserT
|
||||||
if err := h.DB.Where("email = ?", req.Email).First(&existingUser).Error; err == nil {
|
if err := h.DB.Where("email = ?", req.Email).First(&existingUser).Error; err == nil {
|
||||||
utils.WriteError(w, http.StatusConflict, "User already exists")
|
utils.WriteError(w, http.StatusConflict, "User already exists")
|
||||||
return
|
return
|
||||||
@@ -46,7 +46,7 @@ func (h *AuthHandler) Register(w http.ResponseWriter, r *http.Request) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Создаем пользователя
|
// Создаем пользователя
|
||||||
user := models.User{
|
user := models.UserT{
|
||||||
Email: req.Email,
|
Email: req.Email,
|
||||||
Password: hashedPassword,
|
Password: hashedPassword,
|
||||||
Name: req.Name,
|
Name: req.Name,
|
||||||
@@ -78,7 +78,7 @@ func (h *AuthHandler) Login(w http.ResponseWriter, r *http.Request) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Ищем пользователя
|
// Ищем пользователя
|
||||||
var user models.User
|
var user models.UserT
|
||||||
if err := h.DB.Where("email = ?", req.Email).First(&user).Error; err != nil {
|
if err := h.DB.Where("email = ?", req.Email).First(&user).Error; err != nil {
|
||||||
utils.WriteError(w, http.StatusUnauthorized, "Invalid credentials")
|
utils.WriteError(w, http.StatusUnauthorized, "Invalid credentials")
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -73,7 +73,7 @@ func (h *OAuthHandler) GoogleCallback(w http.ResponseWriter, r *http.Request) {
|
|||||||
|
|
||||||
// Аналогичные методы для Yandex и VK...
|
// Аналогичные методы для Yandex и VK...
|
||||||
|
|
||||||
func (h *OAuthHandler) findOrCreateOAuthUser(provider, providerID, email, name string, token *oauth2.Token) (*models.User, error) {
|
func (h *OAuthHandler) findOrCreateOAuthUser(provider, providerID, email, name string, token *oauth2.Token) (*models.UserT, error) {
|
||||||
var oauthProvider models.OAuthProvider
|
var oauthProvider models.OAuthProvider
|
||||||
|
|
||||||
err := h.DB.Where("provider = ? AND provider_id = ?", provider, providerID).
|
err := h.DB.Where("provider = ? AND provider_id = ?", provider, providerID).
|
||||||
@@ -89,7 +89,7 @@ func (h *OAuthHandler) findOrCreateOAuthUser(provider, providerID, email, name s
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
var user models.User
|
var user models.UserT
|
||||||
if err := h.DB.First(&user, oauthProvider.UserID).Error; err != nil {
|
if err := h.DB.First(&user, oauthProvider.UserID).Error; err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@@ -97,12 +97,12 @@ func (h *OAuthHandler) findOrCreateOAuthUser(provider, providerID, email, name s
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Ищем пользователя по email
|
// Ищем пользователя по email
|
||||||
var user models.User
|
var user models.UserT
|
||||||
err = h.DB.Where("email = ?", email).First(&user).Error
|
err = h.DB.Where("email = ?", email).First(&user).Error
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
// Создаем нового пользователя
|
// Создаем нового пользователя
|
||||||
user = models.User{
|
user = models.UserT{
|
||||||
Email: email,
|
Email: email,
|
||||||
Name: name,
|
Name: name,
|
||||||
Password: utils.GenerateRandomPassword(),
|
Password: utils.GenerateRandomPassword(),
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ func (h *OAuthHandler) YandexCallback(w http.ResponseWriter, r *http.Request) {
|
|||||||
h.handleOAuthSuccess(w, r, jwtToken, user)
|
h.handleOAuthSuccess(w, r, jwtToken, user)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (h *OAuthHandler) handleOAuthSuccess(w http.ResponseWriter, r *http.Request, jwtToken string, user *models.User) {
|
func (h *OAuthHandler) handleOAuthSuccess(w http.ResponseWriter, r *http.Request, jwtToken string, user *models.UserT) {
|
||||||
panic("unimplemented")
|
panic("unimplemented")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import (
|
|||||||
"gorm.io/gorm"
|
"gorm.io/gorm"
|
||||||
)
|
)
|
||||||
|
|
||||||
type User struct {
|
type UserT struct {
|
||||||
ID uint `json:"id" gorm:"primarykey"`
|
ID uint `json:"id" gorm:"primarykey"`
|
||||||
CreatedAt time.Time `json:"created_at"`
|
CreatedAt time.Time `json:"created_at"`
|
||||||
UpdatedAt time.Time `json:"updated_at"`
|
UpdatedAt time.Time `json:"updated_at"`
|
||||||
|
|||||||
@@ -14,32 +14,32 @@ func NewUserRepository(db *gorm.DB) *UserRepository {
|
|||||||
return &UserRepository{db: db}
|
return &UserRepository{db: db}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *UserRepository) Create(user *models.User) error {
|
func (r *UserRepository) Create(user *models.UserT) error {
|
||||||
return r.db.Create(user).Error
|
return r.db.Create(user).Error
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *UserRepository) FindByID(id uint) (*models.User, error) {
|
func (r *UserRepository) FindByID(id uint) (*models.UserT, error) {
|
||||||
var user models.User
|
var user models.UserT
|
||||||
err := r.db.First(&user, id).Error
|
err := r.db.First(&user, id).Error
|
||||||
return &user, err
|
return &user, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *UserRepository) FindByEmail(email string) (*models.User, error) {
|
func (r *UserRepository) FindByEmail(email string) (*models.UserT, error) {
|
||||||
var user models.User
|
var user models.UserT
|
||||||
err := r.db.Where("email = ?", email).First(&user).Error
|
err := r.db.Where("email = ?", email).First(&user).Error
|
||||||
return &user, err
|
return &user, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *UserRepository) FindAll() ([]models.User, error) {
|
func (r *UserRepository) FindAll() ([]models.UserT, error) {
|
||||||
var users []models.User
|
var users []models.UserT
|
||||||
err := r.db.Find(&users).Error
|
err := r.db.Find(&users).Error
|
||||||
return users, err
|
return users, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *UserRepository) Update(user *models.User) error {
|
func (r *UserRepository) Update(user *models.UserT) error {
|
||||||
return r.db.Save(user).Error
|
return r.db.Save(user).Error
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *UserRepository) Delete(id uint) error {
|
func (r *UserRepository) Delete(id uint) error {
|
||||||
return r.db.Delete(&models.User{}, id).Error
|
return r.db.Delete(&models.UserT{}, id).Error
|
||||||
}
|
}
|
||||||
@@ -30,7 +30,7 @@ func (s *UserService) CreateUser(req *models.CreateUserRequest) (*models.UserRes
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
user := &models.User{
|
user := &models.UserT{
|
||||||
Name: req.Name,
|
Name: req.Name,
|
||||||
Email: req.Email,
|
Email: req.Email,
|
||||||
Password: string(hashedPassword),
|
Password: string(hashedPassword),
|
||||||
@@ -66,7 +66,7 @@ func (s *UserService) GetAllUsers() ([]models.UserResponse, error) {
|
|||||||
return responses, nil
|
return responses, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *UserService) toUserResponse(user *models.User) *models.UserResponse {
|
func (s *UserService) toUserResponse(user *models.UserT) *models.UserResponse {
|
||||||
return &models.UserResponse{
|
return &models.UserResponse{
|
||||||
ID: user.ID,
|
ID: user.ID,
|
||||||
CreatedAt: user.CreatedAt,
|
CreatedAt: user.CreatedAt,
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ func GenerateState() string {
|
|||||||
return fmt.Sprintf("%x", b)
|
return fmt.Sprintf("%x", b)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (h *OAuthHandler) findOrCreateOAuthUser(provider, providerID, email, name string, token *oauth2.Token) (*models.User, error) {
|
func (h *OAuthHandler) findOrCreateOAuthUser(provider, providerID, email, name string, token *oauth2.Token) (*models.UserT, error) {
|
||||||
var oauthProvider models.OAuthProvider
|
var oauthProvider models.OAuthProvider
|
||||||
|
|
||||||
err := h.DB.Where("provider = ? AND provider_id = ?", provider, providerID).
|
err := h.DB.Where("provider = ? AND provider_id = ?", provider, providerID).
|
||||||
@@ -37,7 +37,7 @@ func (h *OAuthHandler) findOrCreateOAuthUser(provider, providerID, email, name s
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
var user models.User
|
var user models.UserT
|
||||||
if err := h.DB.First(&user, oauthProvider.UserID).Error; err != nil {
|
if err := h.DB.First(&user, oauthProvider.UserID).Error; err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@@ -45,12 +45,12 @@ func (h *OAuthHandler) findOrCreateOAuthUser(provider, providerID, email, name s
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Ищем пользователя по email
|
// Ищем пользователя по email
|
||||||
var user models.User
|
var user models.UserT
|
||||||
err = h.DB.Where("email = ?", email).First(&user).Error
|
err = h.DB.Where("email = ?", email).First(&user).Error
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
// Создаем нового пользователя
|
// Создаем нового пользователя
|
||||||
user = models.User{
|
user = models.UserT{
|
||||||
Email: email,
|
Email: email,
|
||||||
Name: name,
|
Name: name,
|
||||||
Password: GenerateRandomPassword(),
|
Password: GenerateRandomPassword(),
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ func NewPostgresConnection(cfg *config.Config) (*gorm.DB, error) {
|
|||||||
func autoMigrate(db *gorm.DB) error {
|
func autoMigrate(db *gorm.DB) error {
|
||||||
// автоматические миграции GORM
|
// автоматические миграции GORM
|
||||||
return db.AutoMigrate(
|
return db.AutoMigrate(
|
||||||
&models.User{},
|
&models.UserT{},
|
||||||
&models.OAuthProvider{},
|
&models.OAuthProvider{},
|
||||||
// другие модели...
|
// другие модели...
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user