switched to gorm..
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user