(FIX): Removed tx's from user and engagement repositories.
This commit is contained in:
parent
37c88561b6
commit
0bfb2e6e86
@ -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
|
// 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.
|
// 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) {
|
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 := `
|
query := `
|
||||||
SELECT * FROM Engagements
|
SELECT * FROM Engagements
|
||||||
WHERE Userid = $1
|
WHERE Userid = $1
|
||||||
ORDER BY created DESC LIMIT $2;
|
ORDER BY created DESC LIMIT $2;
|
||||||
`
|
`
|
||||||
|
|
||||||
rows, err := tx.Query(query, userId, limit)
|
rows, err := r.db.Query(query, userId, limit)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
tx.Rollback()
|
|
||||||
return []domain.Engagement{}, fmt.Errorf("Failed to get user engagements. %s", err.Error())
|
return []domain.Engagement{}, fmt.Errorf("Failed to get user engagements. %s", err.Error())
|
||||||
}
|
}
|
||||||
defer rows.Close()
|
defer rows.Close()
|
||||||
@ -275,7 +268,6 @@ func (r *EngagementRepository) GetUserEngagement(userId, limit int) ([]domain.En
|
|||||||
&engUserId,
|
&engUserId,
|
||||||
&engagement.Created,
|
&engagement.Created,
|
||||||
); err != nil {
|
); err != nil {
|
||||||
tx.Rollback()
|
|
||||||
return []domain.Engagement{}, fmt.Errorf("Failed to scan user engagement. %s", err.Error())
|
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)
|
engagements = append(engagements, engagement)
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := tx.Commit(); err != nil {
|
|
||||||
tx.Rollback()
|
|
||||||
return []domain.Engagement{}, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return engagements, 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
|
// 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.
|
// 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) {
|
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 := `
|
query := `
|
||||||
SELECT id, type, message, entity, userid, created
|
SELECT id, type, message, entity, userid, created
|
||||||
FROM (
|
FROM (
|
||||||
@ -319,9 +300,8 @@ func (r *EngagementRepository) GetUserEngagementFiltered(userId, limit int, enga
|
|||||||
LIMIT $3;
|
LIMIT $3;
|
||||||
`
|
`
|
||||||
|
|
||||||
rows, err := tx.Query(query, userId, engagementType, limit)
|
rows, err := r.db.Query(query, userId, engagementType, limit)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
tx.Rollback()
|
|
||||||
return []domain.Engagement{}, fmt.Errorf("Failed to get user engagements. %s", err.Error())
|
return []domain.Engagement{}, fmt.Errorf("Failed to get user engagements. %s", err.Error())
|
||||||
}
|
}
|
||||||
defer rows.Close()
|
defer rows.Close()
|
||||||
@ -338,7 +318,6 @@ func (r *EngagementRepository) GetUserEngagementFiltered(userId, limit int, enga
|
|||||||
&engUserId,
|
&engUserId,
|
||||||
&engagement.Created,
|
&engagement.Created,
|
||||||
); err != nil {
|
); err != nil {
|
||||||
tx.Rollback()
|
|
||||||
return []domain.Engagement{}, fmt.Errorf("Failed to scan user engagement. %s", err.Error())
|
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)
|
engagements = append(engagements, engagement)
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := tx.Commit(); err != nil {
|
|
||||||
tx.Rollback()
|
|
||||||
return []domain.Engagement{}, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return engagements, err
|
return engagements, err
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// UserFavoriteRecipeToggle toggles the status of a users favorite of a recipe. If the user has already
|
// UserFavoriteRecipeToggle toggles the status of a users favorite of a recipe. If the user has already
|
||||||
|
|||||||
@ -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
|
// 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.
|
// no user is found, this function will return a null pointer but not an error.
|
||||||
func (r *UserRepository) GetGoogleUser(googleId string) (*domain.User, 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
|
var user domain.User
|
||||||
query := `SELECT * FROM users WHERE GoogleId = $1`
|
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.Id,
|
||||||
&user.GoogleId,
|
&user.GoogleId,
|
||||||
&user.Name,
|
&user.Name,
|
||||||
@ -99,12 +93,6 @@ func (r *UserRepository) GetGoogleUser(googleId string) (*domain.User, error) {
|
|||||||
if err == sql.ErrNoRows {
|
if err == sql.ErrNoRows {
|
||||||
return nil, nil
|
return nil, nil
|
||||||
}
|
}
|
||||||
tx.Rollback()
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
if err := tx.Commit(); err != nil {
|
|
||||||
tx.Rollback()
|
|
||||||
return nil, err
|
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
|
// Callers are responsible for protecting against double nil results. Any errors will be bubbled
|
||||||
// to the caller.
|
// to the caller.
|
||||||
func (r *UserRepository) GetUser(id int) (*domain.User, error) {
|
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"
|
query := "SELECT * FROM users WHERE id = $1"
|
||||||
|
|
||||||
var user domain.User
|
var user domain.User
|
||||||
if err := tx.QueryRow(query, id).Scan(
|
if err := r.db.QueryRow(query, id).Scan(
|
||||||
&user.Id,
|
&user.Id,
|
||||||
&user.GoogleId,
|
&user.GoogleId,
|
||||||
&user.Name,
|
&user.Name,
|
||||||
@ -138,15 +120,8 @@ func (r *UserRepository) GetUser(id int) (*domain.User, error) {
|
|||||||
if err == sql.ErrNoRows {
|
if err == sql.ErrNoRows {
|
||||||
return nil, nil
|
return nil, nil
|
||||||
}
|
}
|
||||||
tx.Rollback()
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
if err := tx.Commit(); err != nil {
|
|
||||||
tx.Rollback()
|
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
return &user, nil
|
return &user, nil
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user