user_repository.go 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. package repository
  2. import (
  3. "log"
  4. "api-dockerization/internal/models"
  5. "gorm.io/gorm"
  6. )
  7. type UserRepository interface {
  8. Create(user *models.User) error
  9. GetAll() ([]models.User, error)
  10. GetByID(id uint) (*models.User, error)
  11. DeleteByID(id uint) error // Método que agregamos
  12. }
  13. type userRepository struct {
  14. db *gorm.DB
  15. }
  16. func NewUserRepository(db *gorm.DB) UserRepository {
  17. return &userRepository{db}
  18. }
  19. func (r *userRepository) Create(user *models.User) error {
  20. log.Printf("Creating user: %+v\n", user) // Agrega esta línea para depuración
  21. return r.db.Create(user).Error
  22. }
  23. func (r *userRepository) GetAll() ([]models.User, error) {
  24. var users []models.User
  25. err := r.db.Find(&users).Error
  26. return users, err
  27. }
  28. // GetByID obtiene un usuario por su ID
  29. func (r *userRepository) GetByID(id uint) (*models.User, error) {
  30. var user models.User
  31. if err := r.db.First(&user, id).Error; err != nil {
  32. return nil, err
  33. }
  34. return &user, nil
  35. }
  36. func (r *userRepository) DeleteByID(id uint) error {
  37. if err := r.db.Delete(&models.User{}, id).Error; err != nil {
  38. return err
  39. }
  40. return nil
  41. }