Use new common function

This commit is contained in:
Brendan Abolivier 2017-07-17 17:49:36 +01:00
parent 81fec3bd8d
commit e115a12edc
No known key found for this signature in database
GPG key ID: 8EF1500759F70623

View file

@ -136,35 +136,19 @@ func (d *Database) removeMembershipsByEventIDs(eventIDs []string, txn *sql.Tx) e
// insertion and deletion has been successfully processed. // insertion and deletion has been successfully processed.
// Returns a SQL error if there was an issue with any part of the process // Returns a SQL error if there was an issue with any part of the process
func (d *Database) UpdateMemberships(eventsToAdd []gomatrixserverlib.Event, idsToRemove []string) error { func (d *Database) UpdateMemberships(eventsToAdd []gomatrixserverlib.Event, idsToRemove []string) error {
txn, err := d.db.Begin() return common.WithTransaction(d.db, func(txn *sql.Tx) error {
if err != nil { if err := d.removeMembershipsByEventIDs(idsToRemove, txn); err != nil {
if e := txn.Rollback(); e != nil {
return e
}
return err
}
if err := d.removeMembershipsByEventIDs(idsToRemove, txn); err != nil {
if e := txn.Rollback(); e != nil {
return e
}
return err
}
for _, event := range eventsToAdd {
if err := d.newMembership(event, txn); err != nil {
if e := txn.Rollback(); e != nil {
return e
}
return err return err
} }
}
if err := txn.Commit(); err != nil { for _, event := range eventsToAdd {
return err if err := d.newMembership(event, txn); err != nil {
} return err
}
}
return nil return nil
})
} }
// newMembership will save a new membership in the database if the given state // newMembership will save a new membership in the database if the given state