splitted user registration into user, consents & bankaccount creation
This commit is contained in:
35
internal/repositories/banking_repository.go
Normal file
35
internal/repositories/banking_repository.go
Normal file
@@ -0,0 +1,35 @@
|
||||
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
|
||||
}
|
||||
35
internal/repositories/consents_repository.go
Normal file
35
internal/repositories/consents_repository.go
Normal file
@@ -0,0 +1,35 @@
|
||||
package repositories
|
||||
|
||||
import (
|
||||
"GoMembership/internal/models"
|
||||
// "GoMembership/pkg/errors"
|
||||
"database/sql"
|
||||
)
|
||||
|
||||
type ConsentRepository interface {
|
||||
CreateConsent(consent *models.Consent) (int64, error)
|
||||
}
|
||||
|
||||
type consentRepository struct {
|
||||
db *sql.DB
|
||||
}
|
||||
|
||||
func NewConsentRepository(db *sql.DB) ConsentRepository {
|
||||
return &consentRepository{db}
|
||||
}
|
||||
|
||||
func (repo *consentRepository) CreateConsent(consent *models.Consent) (int64, error) {
|
||||
|
||||
query := "INSERT INTO consents (user_id, first_name, last_name, email, created_at, updated_at, consent_type) VALUES (?, ?, ?, ?, ?, ?, ?)"
|
||||
result, err := repo.db.Exec(query, consent.UserID, consent.FirstName, consent.LastName, consent.Email, consent.CreatedAt, consent.UpdatedAt, consent.ConsentType)
|
||||
if err != nil {
|
||||
|
||||
return -1, err
|
||||
}
|
||||
lastInsertID, err := result.LastInsertId()
|
||||
if err != nil {
|
||||
return -1, err
|
||||
}
|
||||
|
||||
return lastInsertID, err
|
||||
}
|
||||
@@ -12,9 +12,17 @@ type UserRepository interface {
|
||||
FindUserByEmail(email string) (*models.User, error)
|
||||
}
|
||||
|
||||
type userRepository struct {
|
||||
db *sql.DB
|
||||
}
|
||||
|
||||
func NewUserRepository(db *sql.DB) UserRepository {
|
||||
return &userRepository{db}
|
||||
}
|
||||
|
||||
func (repo *userRepository) CreateUser(user *models.User) (int64, error) {
|
||||
query := "INSERT INTO users (first_name, last_name, email, password, salt, iban, bic, mandate_reference, mandate_date_signed, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"
|
||||
result, err := repo.db.Exec(query, user.FirstName, user.LastName, user.Email, user.Password, user.Salt, user.IBAN, user.BIC, user.MandateReference, user.MandateDateSigned, user.CreatedAt, user.UpdatedAt)
|
||||
query := "INSERT INTO users (first_name, last_name, email, password, salt, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?, ?)"
|
||||
result, err := repo.db.Exec(query, user.FirstName, user.LastName, user.Email, user.Password, user.Salt, user.CreatedAt, user.UpdatedAt)
|
||||
if err != nil {
|
||||
return -1, err
|
||||
}
|
||||
@@ -27,18 +35,10 @@ func (repo *userRepository) CreateUser(user *models.User) (int64, error) {
|
||||
return lastInsertID, err
|
||||
}
|
||||
|
||||
type userRepository struct {
|
||||
db *sql.DB
|
||||
}
|
||||
|
||||
func NewUserRepository(db *sql.DB) UserRepository {
|
||||
return &userRepository{db}
|
||||
}
|
||||
|
||||
func (repo *userRepository) FindUserByID(id int) (*models.User, error) {
|
||||
var user models.User
|
||||
query := "SELECT id, first_name, last_name, email, iban, bic, mandate_reference FROM users WHERE id = ?"
|
||||
err := repo.db.QueryRow(query, id).Scan(&user.ID, &user.FirstName, &user.LastName, &user.Email, &user.IBAN, &user.BIC, &user.MandateReference)
|
||||
query := "SELECT id, first_name, last_name, email FROM users WHERE id = ?"
|
||||
err := repo.db.QueryRow(query, id).Scan(&user.ID, &user.FirstName, &user.LastName, &user.Email)
|
||||
if err != nil {
|
||||
if err == sql.ErrNoRows {
|
||||
return nil, errors.ErrUserNotFound
|
||||
@@ -50,8 +50,8 @@ func (repo *userRepository) FindUserByID(id int) (*models.User, error) {
|
||||
|
||||
func (repo *userRepository) FindUserByEmail(email string) (*models.User, error) {
|
||||
var user models.User
|
||||
query := "SELECT id, first_name, last_name, email, iban, bic, mandate_reference FROM users WHERE email = ?"
|
||||
err := repo.db.QueryRow(query, email).Scan(&user.ID, &user.FirstName, &user.LastName, &user.Email, &user.IBAN, &user.BIC, &user.MandateReference)
|
||||
query := "SELECT id, first_name, last_name, email FROM users WHERE email = ?"
|
||||
err := repo.db.QueryRow(query, email).Scan(&user.ID, &user.FirstName, &user.LastName, &user.Email)
|
||||
if err != nil {
|
||||
if err == sql.ErrNoRows {
|
||||
return nil, errors.ErrUserNotFound
|
||||
|
||||
Reference in New Issue
Block a user