plateMate/internal/repositories/user_repository.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
}