Skip to content

Commit

Permalink
Refactor to use transaction-bound statement builder
Browse files Browse the repository at this point in the history
  • Loading branch information
Ismail731404 committed Dec 16, 2024
1 parent 3285e05 commit 8aae519
Showing 1 changed file with 8 additions and 6 deletions.
14 changes: 8 additions & 6 deletions internals/config/externalconfig/postgres_repository.go
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,9 @@ func (r *PostgresRepository) Update(id int64, externalConfig models.ExternalConf
return err
}

_, err = r.newStatement().
statementBuilder := sq.StatementBuilder.PlaceholderFormat(sq.Dollar).RunWith(tx)

_, err = statementBuilder.
Update("external_generic_config_v1").
Set("name", externalConfig.Name).
Where("id = ?", id).
Expand All @@ -174,7 +176,7 @@ func (r *PostgresRepository) Update(id int64, externalConfig models.ExternalConf
}

// Update old version (current_version = false)
_, err = r.newStatement().
_, err = statementBuilder.
Update("external_generic_config_versions_v1").
Set("current_version", false).
Where("config_id = ?", id).
Expand All @@ -186,7 +188,7 @@ func (r *PostgresRepository) Update(id int64, externalConfig models.ExternalConf
}

// Insert the new version with current_version = true
_, err = r.newStatement().
_, err = statementBuilder.
Insert("external_generic_config_versions_v1").
Columns("config_id", "data", "current_version").
Values(id, externalConfig.Data, true).
Expand All @@ -198,7 +200,7 @@ func (r *PostgresRepository) Update(id int64, externalConfig models.ExternalConf

// Count total versions
var versionCount int
err = r.newStatement().
err = statementBuilder.
Select("COUNT(*)").
From("external_generic_config_versions_v1").
Where("config_id = ?", id).
Expand All @@ -213,7 +215,7 @@ func (r *PostgresRepository) Update(id int64, externalConfig models.ExternalConf

if versionCount > maxVersions {

subQuery, _, err := r.newStatement().
subQuery, _, err := statementBuilder.
Select("created_at").
From("external_generic_config_versions_v1").
Where("config_id = ?", id).
Expand All @@ -227,7 +229,7 @@ func (r *PostgresRepository) Update(id int64, externalConfig models.ExternalConf
return err
}

_, err = r.newStatement().
_, err = statementBuilder.
Delete("external_generic_config_versions_v1").
Where("config_id = ?", id).
Where("created_at < (" + subQuery + ")").
Expand Down

0 comments on commit 8aae519

Please sign in to comment.