36 lines
947 B
Go
36 lines
947 B
Go
package repositories
|
|
|
|
import (
|
|
"GoMembership/internal/models"
|
|
// "GoMembership/pkg/errors"
|
|
"database/sql"
|
|
)
|
|
|
|
type BankAccountRepository interface {
|
|
CreateBankAccount(account *models.BankAccount) (int64, error)
|
|
}
|
|
|
|
type bankAccountRepository struct {
|
|
db *sql.DB
|
|
}
|
|
|
|
func NewBankAccountRepository(db *sql.DB) BankAccountRepository {
|
|
return &bankAccountRepository{db}
|
|
}
|
|
|
|
func (repo *bankAccountRepository) CreateBankAccount(account *models.BankAccount) (int64, error) {
|
|
|
|
query := "INSERT INTO banking (user_id, iban, bic, mandate_reference, mandate_date_signed, bank_name, account_holder_name) VALUES (?, ?, ?, ?, ?, ?, ?)"
|
|
result, err := repo.db.Exec(query, account.UserID, account.IBAN, account.BIC, account.MandateReference, account.MandateDateSigned, account.Bank, account.AccountHolderName)
|
|
if err != nil {
|
|
|
|
return -1, err
|
|
}
|
|
lastInsertID, err := result.LastInsertId()
|
|
if err != nil {
|
|
return -1, err
|
|
}
|
|
|
|
return lastInsertID, err
|
|
}
|