switched to gorm..

This commit is contained in:
$(pass /github/name)
2024-07-10 14:22:56 +02:00
parent 87e9f71ceb
commit 6ac5491053
27 changed files with 368 additions and 283 deletions

View File

@@ -1,53 +1,41 @@
package repositories
import (
"database/sql"
"time"
"gorm.io/gorm"
"GoMembership/internal/models"
"GoMembership/pkg/errors"
)
type MembershipRepository interface {
CreateMembership(account *models.Membership) (int64, error)
CreateMembership(membership *models.Membership) (int64, error)
FindMembershipByUserID(userID int64) (*models.Membership, error)
}
type membershipRepository struct {
db *sql.DB
db *gorm.DB
}
func NewMembershipRepository(db *sql.DB) MembershipRepository {
func NewMembershipRepository(db *gorm.DB) MembershipRepository {
return &membershipRepository{db}
}
func (repo *membershipRepository) CreateMembership(membership *models.Membership) (int64, error) {
query := "INSERT INTO memberships (user_id, model_id, start_date, status) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"
result, err := repo.db.Exec(query, membership.UserID, membership.MonthlyFee, membership.RentalFee, membership.Model, time.Now(), membership.Status)
if err != nil {
return -1, err
result := repo.db.Create(membership)
if result.Error != nil {
return 0, result.Error
}
lastInsertID, err := result.LastInsertId()
if err != nil {
return -1, err
}
return lastInsertID, err
return membership.ID, nil
}
func (repo *membershipRepository) FindMembershipByUserID(userID int64) (*models.Membership, error) {
var membership models.Membership
query := "SELECT id, model_id, start_date, end_date, status FROM memberships where user_id = ?"
err := repo.db.QueryRow(query, userID).Scan(&membership.ID, &membership.MonthlyFee, &membership.RentalFee, &membership.Model, &membership.StartDate, &membership.EndDate, &membership.Status)
if err != nil {
if err == sql.ErrNoRows {
return nil, errors.ErrNotFound
}
return nil, err
}
membership.UserID = userID
return &membership, nil
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
}