From 1475b95491be100927460bc17a97bfc85ab51d3c Mon Sep 17 00:00:00 2001 From: Julien Dessaux Date: Wed, 12 May 2021 22:58:22 +0200 Subject: Added train_stops to schema --- pkg/database/train_stop.go | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 pkg/database/train_stop.go (limited to 'pkg/database/train_stop.go') diff --git a/pkg/database/train_stop.go b/pkg/database/train_stop.go new file mode 100644 index 0000000..27fb910 --- /dev/null +++ b/pkg/database/train_stop.go @@ -0,0 +1,36 @@ +package database + +import "git.adyxax.org/adyxax/trains/pkg/model" + +func (env *DBEnv) ReplaceAndImportTrainStops(trainStops []model.TrainStop) error { + pre_query := `DELETE FROM train_stops;` + query := ` + INSERT INTO train_stops + (id, name) + VALUES + ($1, $2);` + tx, err := env.db.Begin() + if err != nil { + return newTransactionError("Could not Begin()", err) + } + _, err = tx.Exec(pre_query) + if err != nil { + tx.Rollback() + return newQueryError("Could not run database query: most likely the schema is corrupted", err) + } + for i := 0; i < len(trainStops); i++ { + _, err = tx.Exec( + query, + trainStops[i].Id, + trainStops[i].Name, + ) + if err != nil { + tx.Rollback() + return newQueryError("Could not run database query: ", err) + } + } + if err := tx.Commit(); err != nil { + return newTransactionError("Could not commit transaction", err) + } + return nil +} -- cgit v1.2.3