Files
GoMembership/internal/repositories/membership_repository.go
$(pass /github/name) 6ac5491053 switched to gorm..
2024-07-10 14:22:56 +02:00

42 lines
981 B
Go

package repositories
import (
"gorm.io/gorm"
"GoMembership/internal/models"
)
type MembershipRepository interface {
CreateMembership(membership *models.Membership) (int64, error)
FindMembershipByUserID(userID int64) (*models.Membership, error)
}
type membershipRepository struct {
db *gorm.DB
}
func NewMembershipRepository(db *gorm.DB) MembershipRepository {
return &membershipRepository{db}
}
func (repo *membershipRepository) CreateMembership(membership *models.Membership) (int64, error) {
result := repo.db.Create(membership)
if result.Error != nil {
return 0, result.Error
}
return membership.ID, nil
}
func (repo *membershipRepository) FindMembershipByUserID(userID int64) (*models.Membership, error) {
var membership models.Membership
result := repo.db.First(&membership, userID)
if result.Error != nil {
if result.Error == gorm.ErrRecordNotFound {
return nil, gorm.ErrRecordNotFound
}
return nil, result.Error
}
return &membership, nil
}