Mercurial > gemma
changeset 3551:a5448426e4e2
Only erase gauges that have been requested from ERDMS
author | Tom Gottfried <tom@intevation.de> |
---|---|
date | Fri, 31 May 2019 14:16:48 +0200 |
parents | c0f8f9ba21a7 |
children | ffc8fb059d1a |
files | pkg/imports/dmv.go pkg/imports/erdms.go pkg/imports/wg.go |
diffstat | 3 files changed, 16 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/pkg/imports/dmv.go Fri May 31 13:59:54 2019 +0200 +++ b/pkg/imports/dmv.go Fri May 31 14:16:48 2019 +0200 @@ -87,7 +87,7 @@ start := time.Now() - responseData, err := getRisData( + responseData, _, err := getRisData( ctx, conn, feedback,
--- a/pkg/imports/erdms.go Fri May 31 13:59:54 2019 +0200 +++ b/pkg/imports/erdms.go Fri May 31 14:16:48 2019 +0200 @@ -65,11 +65,11 @@ URL string, insecure bool, funcode string, -) ([]*erdms.GetRisDataXMLResponse, error) { +) ([]*erdms.GetRisDataXMLResponse, []string, error) { countries, err := userCountries(ctx, conn) if err != nil { - return nil, err + return nil, nil, err } var auth *soap.BasicAuth @@ -106,7 +106,8 @@ tries++ goto again } - return nil, fmt.Errorf("Error requesting ERDMS service: %v", err) + return nil, nil, fmt.Errorf( + "Error requesting ERDMS service: %v", err) } responseData = append(responseData, data) } @@ -114,5 +115,5 @@ feedback.Info("Import data for countries: %s.", strings.Join(countries, ", ")) - return responseData, nil + return responseData, countries, nil }
--- a/pkg/imports/wg.go Fri May 31 13:59:54 2019 +0200 +++ b/pkg/imports/wg.go Fri May 31 14:16:48 2019 +0200 @@ -67,7 +67,9 @@ const ( eraseObsoleteGaugesSQL = ` UPDATE waterway.gauges SET erased = true -WHERE NOT erased AND isrs_astext(location) <> ALL($1) +WHERE NOT erased + AND (location).country_code = ANY($1) + AND isrs_astext(location) <> ALL($2) RETURNING isrs_astext(location) ` @@ -184,7 +186,7 @@ start := time.Now() - responseData, err := getRisData( + responseData, countries, err := getRisData( ctx, conn, feedback, @@ -515,9 +517,13 @@ return nil, UnchangedError("No gauges returned from ERDMS") } - var pgGauges pgtype.VarcharArray + var pgCountries, pgGauges pgtype.VarcharArray + pgCountries.Set(countries) pgGauges.Set(gauges) - obsGauges, err := conn.QueryContext(ctx, eraseObsoleteGaugesSQL, &pgGauges) + obsGauges, err := conn.QueryContext(ctx, + eraseObsoleteGaugesSQL, + &pgCountries, + &pgGauges) if err != nil { return nil, err }