64 lines
1.3 KiB
Go
64 lines
1.3 KiB
Go
package repository
|
|
|
|
import (
|
|
"go-microservices/services/auth-service/internal/models"
|
|
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
type Repository struct {
|
|
DB *gorm.DB
|
|
}
|
|
|
|
func NewRepository(db *gorm.DB) *Repository {
|
|
return &Repository{DB: db}
|
|
}
|
|
|
|
func (r *Repository) CreateAuth(a *models.Auth) error {
|
|
return r.DB.Create(a).Error
|
|
}
|
|
|
|
func (r *Repository) GetAuthByEmail(email string) (*models.Auth, error) {
|
|
var a models.Auth
|
|
if err := r.DB.Where("email = ?", email).First(&a).Error; err != nil {
|
|
return nil, err
|
|
}
|
|
return &a, nil
|
|
}
|
|
|
|
func (r *Repository) GetAuthByID(id uint) (*models.Auth, error) {
|
|
var a models.Auth
|
|
if err := r.DB.First(&a, id).Error; err != nil {
|
|
return nil, err
|
|
}
|
|
return &a, nil
|
|
}
|
|
|
|
func (r *Repository) CreateTest(t *models.Test) error {
|
|
return r.DB.Create(t).Error
|
|
}
|
|
|
|
func (r *Repository) ListTests() ([]models.Test, error) {
|
|
var tests []models.Test
|
|
if err := r.DB.Order("id desc").Find(&tests).Error; err != nil {
|
|
return nil, err
|
|
}
|
|
return tests, nil
|
|
}
|
|
|
|
func (r *Repository) GetTestByID(id uint) (*models.Test, error) {
|
|
var t models.Test
|
|
if err := r.DB.First(&t, id).Error; err != nil {
|
|
return nil, err
|
|
}
|
|
return &t, nil
|
|
}
|
|
|
|
func (r *Repository) UpdateTest(t *models.Test) error {
|
|
return r.DB.Save(t).Error
|
|
}
|
|
|
|
func (r *Repository) DeleteTest(id uint) error {
|
|
return r.DB.Delete(&models.Test{}, id).Error
|
|
}
|