(FIX): Removed tx's from user and engagement repositories.

This commit is contained in:
Hayden Hargreaves 2025-07-27 12:10:56 -07:00
parent 37c88561b6
commit 0bfb2e6e86
2 changed files with 4 additions and 56 deletions

View File

@ -244,21 +244,14 @@ func (r *EngagementRepository) AddEntityEngagement(entityId int, message string,
// GetUserEngagement returns a list of the users most recent engagement entries. The number of records
// is determined by the limit passed into this function. The results are sorted, newest-to-oldest.
func (r *EngagementRepository) GetUserEngagement(userId, limit int) ([]domain.Engagement, error) {
tx, err := r.db.Begin()
if err != nil {
tx.Rollback()
return []domain.Engagement{}, err
}
query := `
SELECT * FROM Engagements
WHERE Userid = $1
ORDER BY created DESC LIMIT $2;
`
rows, err := tx.Query(query, userId, limit)
rows, err := r.db.Query(query, userId, limit)
if err != nil {
tx.Rollback()
return []domain.Engagement{}, fmt.Errorf("Failed to get user engagements. %s", err.Error())
}
defer rows.Close()
@ -275,7 +268,6 @@ func (r *EngagementRepository) GetUserEngagement(userId, limit int) ([]domain.En
&engUserId,
&engagement.Created,
); err != nil {
tx.Rollback()
return []domain.Engagement{}, fmt.Errorf("Failed to scan user engagement. %s", err.Error())
}
@ -287,11 +279,6 @@ func (r *EngagementRepository) GetUserEngagement(userId, limit int) ([]domain.En
engagements = append(engagements, engagement)
}
if err := tx.Commit(); err != nil {
tx.Rollback()
return []domain.Engagement{}, err
}
return engagements, err
}
@ -299,12 +286,6 @@ func (r *EngagementRepository) GetUserEngagement(userId, limit int) ([]domain.En
// type. The number of records is determined by the limit passed into this function. The results are
// sorted, newest-to-oldest. Only results of the provided engagementType will be returned.
func (r *EngagementRepository) GetUserEngagementFiltered(userId, limit int, engagementType domain.EngagementType) ([]domain.Engagement, error) {
tx, err := r.db.Begin()
if err != nil {
tx.Rollback()
return []domain.Engagement{}, err
}
query := `
SELECT id, type, message, entity, userid, created
FROM (
@ -319,9 +300,8 @@ func (r *EngagementRepository) GetUserEngagementFiltered(userId, limit int, enga
LIMIT $3;
`
rows, err := tx.Query(query, userId, engagementType, limit)
rows, err := r.db.Query(query, userId, engagementType, limit)
if err != nil {
tx.Rollback()
return []domain.Engagement{}, fmt.Errorf("Failed to get user engagements. %s", err.Error())
}
defer rows.Close()
@ -338,7 +318,6 @@ func (r *EngagementRepository) GetUserEngagementFiltered(userId, limit int, enga
&engUserId,
&engagement.Created,
); err != nil {
tx.Rollback()
return []domain.Engagement{}, fmt.Errorf("Failed to scan user engagement. %s", err.Error())
}
@ -350,13 +329,7 @@ func (r *EngagementRepository) GetUserEngagementFiltered(userId, limit int, enga
engagements = append(engagements, engagement)
}
if err := tx.Commit(); err != nil {
tx.Rollback()
return []domain.Engagement{}, err
}
return engagements, err
}
// UserFavoriteRecipeToggle toggles the status of a users favorite of a recipe. If the user has already

View File

@ -77,16 +77,10 @@ func (r *UserRepository) CreateGoogleUser(googleUserInfo *domain.GoogleUserInfo,
// function is used when a user logs in with Google to prevent duplicate entries from being made. If
// no user is found, this function will return a null pointer but not an error.
func (r *UserRepository) GetGoogleUser(googleId string) (*domain.User, error) {
tx, err := r.db.Begin()
if err != nil {
tx.Rollback()
return nil, err
}
var user domain.User
query := `SELECT * FROM users WHERE GoogleId = $1`
if err := tx.QueryRow(query, googleId).Scan(
if err := r.db.QueryRow(query, googleId).Scan(
&user.Id,
&user.GoogleId,
&user.Name,
@ -99,12 +93,6 @@ func (r *UserRepository) GetGoogleUser(googleId string) (*domain.User, error) {
if err == sql.ErrNoRows {
return nil, nil
}
tx.Rollback()
return nil, err
}
if err := tx.Commit(); err != nil {
tx.Rollback()
return nil, err
}
@ -116,16 +104,10 @@ func (r *UserRepository) GetGoogleUser(googleId string) (*domain.User, error) {
// Callers are responsible for protecting against double nil results. Any errors will be bubbled
// to the caller.
func (r *UserRepository) GetUser(id int) (*domain.User, error) {
tx, err := r.db.Begin()
if err != nil {
tx.Rollback()
return nil, err
}
query := "SELECT * FROM users WHERE id = $1"
var user domain.User
if err := tx.QueryRow(query, id).Scan(
if err := r.db.QueryRow(query, id).Scan(
&user.Id,
&user.GoogleId,
&user.Name,
@ -138,15 +120,8 @@ func (r *UserRepository) GetUser(id int) (*domain.User, error) {
if err == sql.ErrNoRows {
return nil, nil
}
tx.Rollback()
return nil, err
}
if err := tx.Commit(); err != nil {
tx.Rollback()
return nil, err
}
return &user, nil
}