routes created, users controllers, user_repository, model users.go, main.go

This commit is contained in:
2024-03-20 12:37:59 +00:00
commit 9f539f847c
8 changed files with 213 additions and 0 deletions

View File

@@ -0,0 +1,49 @@
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
}