Add missing transaction rollbacks

This commit is contained in:
TwinProduction 2021-07-13 22:30:30 -04:00 committed by Chris
parent 23ba9795a6
commit 796228466d

View File

@ -152,9 +152,11 @@ func (s *Store) Insert(service *core.Service, result *core.Result) {
if err == errServiceNotFoundInDatabase { if err == errServiceNotFoundInDatabase {
// Service doesn't exist in the database, insert it // Service doesn't exist in the database, insert it
if serviceID, err = s.insertService(tx, service); err != nil { if serviceID, err = s.insertService(tx, service); err != nil {
_ = tx.Rollback()
return // failed to insert service return // failed to insert service
} }
} else { } else {
_ = tx.Rollback()
return return
} }
} }
@ -169,6 +171,7 @@ func (s *Store) Insert(service *core.Service, result *core.Result) {
// based on result.Success. // based on result.Success.
numberOfEvents, err := s.getNumberOfEventsByServiceID(tx, serviceID) numberOfEvents, err := s.getNumberOfEventsByServiceID(tx, serviceID)
if err != nil { if err != nil {
_ = tx.Rollback()
return return
} }
if numberOfEvents == 0 { if numberOfEvents == 0 {
@ -226,6 +229,7 @@ func (s *Store) Insert(service *core.Service, result *core.Result) {
// Clean up old results // Clean up old results
numberOfResults, err := s.getNumberOfResultsByServiceID(tx, serviceID) numberOfResults, err := s.getNumberOfResultsByServiceID(tx, serviceID)
if err != nil { if err != nil {
_ = tx.Rollback()
return return
} }
if numberOfResults > core.MaximumNumberOfResults*2 { if numberOfResults > core.MaximumNumberOfResults*2 {
@ -261,7 +265,7 @@ func (s *Store) Close() {
_ = s.db.Close() _ = s.db.Close()
} }
func (s *Store) getAllServiceStatuses(eventsPage, eventsPageSize, resultsPage, resultsPageSize int) []*core.ServiceStatus { // TODO: add uptimePage? func (s *Store) getAllServiceStatuses(eventsPage, eventsPageSize, resultsPage, resultsPageSize int) []*core.ServiceStatus {
var serviceStatuses []*core.ServiceStatus var serviceStatuses []*core.ServiceStatus
keys, err := s.getAllServiceKeys() keys, err := s.getAllServiceKeys()
if err != nil { if err != nil {
@ -375,6 +379,7 @@ func (s *Store) getResultsByServiceID(serviceID int64, page, pageSize int) (resu
(page-1)*pageSize, (page-1)*pageSize,
) )
if err != nil { if err != nil {
_ = tx.Rollback()
return nil, err return nil, err
} }
idResultMap := make(map[int64]*core.Result) idResultMap := make(map[int64]*core.Result)
@ -417,11 +422,7 @@ func (s *Store) getResultsByServiceID(serviceID int64, page, pageSize int) (resu
} }
func (s *Store) getServiceID(tx *sql.Tx, service *core.Service) (int64, error) { func (s *Store) getServiceID(tx *sql.Tx, service *core.Service) (int64, error) {
rows, err := tx.Query( rows, err := tx.Query("SELECT service_id FROM service WHERE service_key = $1", service.Key())
"SELECT service_id FROM service WHERE service_key = $1",
service.Key(),
service.Group,
)
if err != nil { if err != nil {
return 0, err return 0, err
} }