50 lines
1.4 KiB
Go
50 lines
1.4 KiB
Go
|
package repositories
|
||
|
|
||
|
import (
|
||
|
"gorm.io/gorm"
|
||
|
"plateMate/models"
|
||
|
)
|
||
|
|
||
|
// UserRepository representa un repositorio para manejar operaciones relacionadas con usuarios en la base de datos
|
||
|
type UserRepository struct {
|
||
|
db *gorm.DB
|
||
|
}
|
||
|
|
||
|
// NewUserRepository crea una nueva instancia de UserRepository
|
||
|
func NewUserRepository(db *gorm.DB) *UserRepository {
|
||
|
return &UserRepository{db}
|
||
|
}
|
||
|
|
||
|
// Create crea un nuevo usuario en la base de datos
|
||
|
func (ur *UserRepository) Create(user *models.User) error {
|
||
|
return ur.db.Create(user).Error
|
||
|
}
|
||
|
|
||
|
// GetAll devuelve todos los usuarios de la base de datos
|
||
|
func (ur *UserRepository) GetAll() ([]models.User, error) {
|
||
|
var users []models.User
|
||
|
if err := ur.db.Find(&users).Error; err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
return users, nil
|
||
|
}
|
||
|
|
||
|
// GetByID devuelve un usuario por su ID de la base de datos
|
||
|
func (ur *UserRepository) GetByID(userID uint) (*models.User, error) {
|
||
|
var user models.User
|
||
|
if err := ur.db.First(&user, userID).Error; err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
return &user, nil
|
||
|
}
|
||
|
|
||
|
// Update actualiza la información de un usuario en la base de datos
|
||
|
func (ur *UserRepository) Update(user *models.User) error {
|
||
|
return ur.db.Save(user).Error
|
||
|
}
|
||
|
|
||
|
// Delete elimina un usuario de la base de datos
|
||
|
func (ur *UserRepository) Delete(user *models.User) error {
|
||
|
return ur.db.Delete(user).Error
|
||
|
}
|