Mercurial > gemma
comparison pkg/imports/sr.go @ 1168:930fdd8b474f
Track successfull imports in a separate table to be able to remove them later.
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Wed, 14 Nov 2018 12:23:10 +0100 |
parents | 443fc80a315f |
children | 064d44ccc6f2 |
comparison
equal
deleted
inserted
replaced
1167:1ae93a0438df | 1168:930fdd8b474f |
---|---|
142 FROM waterway.sounding_results sr | 142 FROM waterway.sounding_results sr |
143 WHERE id = $1 | 143 WHERE id = $1 |
144 ` | 144 ` |
145 ) | 145 ) |
146 | 146 |
147 func (sr SoundingResult) Do(conn *sql.Conn, feedback Feedback) error { | 147 func (sr SoundingResult) Do( |
148 importID int64, | |
149 ctx context.Context, | |
150 conn *sql.Conn, | |
151 feedback Feedback, | |
152 ) error { | |
148 | 153 |
149 z, err := zip.OpenReader(filepath.Join(string(sr), "sr.zip")) | 154 z, err := zip.OpenReader(filepath.Join(string(sr), "sr.zip")) |
150 if err != nil { | 155 if err != nil { |
151 return err | 156 return err |
152 } | 157 } |
185 // Is there a boundary shapefile in the ZIP archive? | 190 // Is there a boundary shapefile in the ZIP archive? |
186 polygon, err := loadBoundary(z) | 191 polygon, err := loadBoundary(z) |
187 if err != nil { | 192 if err != nil { |
188 return err | 193 return err |
189 } | 194 } |
190 | |
191 ctx := context.Background() | |
192 | 195 |
193 tx, err := conn.BeginTx(ctx, nil) | 196 tx, err := conn.BeginTx(ctx, nil) |
194 if err != nil { | 197 if err != nil { |
195 return err | 198 return err |
196 } | 199 } |
259 feedback.Info("generating and storing contour lines took %s", time.Since(start)) | 262 feedback.Info("generating and storing contour lines took %s", time.Since(start)) |
260 if err != nil { | 263 if err != nil { |
261 return err | 264 return err |
262 } | 265 } |
263 | 266 |
267 // Store for potential later removal. | |
268 if err = track(tx, ctx, importID, "waterway.sounding_results", id); err != nil { | |
269 return err | |
270 } | |
271 | |
264 if err = tx.Commit(); err == nil { | 272 if err = tx.Commit(); err == nil { |
265 feedback.Info("Storing sounding result was successful.") | 273 feedback.Info("Storing sounding result was successful.") |
266 } | 274 } |
267 return err | 275 return err |
268 } | 276 } |