# HG changeset patch # User Sascha L. Teichmann # Date 1667235114 -3600 # Node ID e1936db6db8e2fcc2d542a9954102c7592a35757 # Parent df40d55f7c9a9495df6ad26c31c5991fa276bb13 Adjust ta erdms data structure. diff -r df40d55f7c9a -r e1936db6db8e pkg/imports/erdms.go --- a/pkg/imports/erdms.go Mon Oct 31 17:03:34 2022 +0100 +++ b/pkg/imports/erdms.go Mon Oct 31 17:51:54 2022 +0100 @@ -22,7 +22,7 @@ "gemma.intevation.de/gemma/pkg/log" "gemma.intevation.de/gemma/pkg/soap" - "gemma.intevation.de/gemma/pkg/soap/erdms" + erdms "gemma.intevation.de/gemma/pkg/soap/erdms2" ) const ( @@ -87,10 +87,12 @@ feedback.Info("Request RIS index for country %s", country) + subcode := erdms.RisCodeType(country + "%") + request := &erdms.GetRisDataXML{ GetRisDataXMLType: &erdms.GetRisDataXMLType{ - Subcode: erdms.NoNS{Text: country + "%"}, - Funcode: erdms.NoNS{Text: funcode}, + Subcode: &subcode, + Funcode: funcode, }, } diff -r df40d55f7c9a -r e1936db6db8e pkg/imports/wg.go --- a/pkg/imports/wg.go Mon Oct 31 17:03:34 2022 +0100 +++ b/pkg/imports/wg.go Mon Oct 31 17:51:54 2022 +0100 @@ -23,7 +23,8 @@ "gemma.intevation.de/gemma/pkg/models" "gemma.intevation.de/gemma/pkg/pgxutils" - "gemma.intevation.de/gemma/pkg/soap/erdms" + "gemma.intevation.de/gemma/pkg/soap" + erdms "gemma.intevation.de/gemma/pkg/soap/erdms2" ) // WaterwayGauge is a Job to load gauge data from @@ -239,11 +240,14 @@ feedback.Info("Processing %s", code) // We need a valid, non-empty time range to identify gauge versions - if dr.Enddate != nil && dr.Startdate != nil && - !time.Time(*dr.Enddate).After(time.Time(*dr.Startdate)) { - feedback.Error("End date not after start date") - unchanged++ - continue + if dr.Enddate != nil && dr.Startdate != nil { + ed := soap.XSDDateTime(*dr.Enddate) + sd := soap.XSDDateTime(*dr.Startdate) + if !ed.ToGoTime().After(sd.ToGoTime()) { + feedback.Error("End date not after start date") + unchanged++ + continue + } } var from, to sql.NullInt64 @@ -264,8 +268,9 @@ var tfrom, tto, dateInfo pgtype.Timestamptz if dr.Startdate != nil { + sd := soap.XSDDateTime(*dr.Startdate) tfrom = pgtype.Timestamptz{ - Time: time.Time(*dr.Startdate), + Time: sd.ToGoTime(), Status: pgtype.Present, } } else { @@ -275,8 +280,9 @@ } if dr.Enddate != nil { + ed := soap.XSDDateTime(*dr.Enddate) tto = pgtype.Timestamptz{ - Time: time.Time(*dr.Enddate), + Time: ed.ToGoTime(), Status: pgtype.Present, } } else { @@ -294,8 +300,9 @@ } if dr.Infodate != nil { + id := soap.XSDDateTime(*dr.Infodate) dateInfo = pgtype.Timestamptz{ - Time: time.Time(*dr.Infodate), + Time: id.ToGoTime(), Status: pgtype.Present, } } else { @@ -341,6 +348,7 @@ unchanged++ continue case isNew: + lu := soap.XSDDateTime(*dr.Lastupdate) // insert gauge version entry if _, err = tx.StmtContext(ctx, insertStmt).ExecContext(ctx, code.CountryCode, @@ -357,7 +365,7 @@ geodref, &dateInfo, source, - time.Time(*dr.Lastupdate), + lu.ToGoTime(), ); err != nil { feedback.Error(pgxutils.ReadableError{Err: err}.Error()) if err2 := tx.Rollback(); err2 != nil { @@ -368,6 +376,7 @@ } feedback.Info("insert new version") case !isNew: + lu := soap.XSDDateTime(*dr.Lastupdate) // try to update var dummy int err2 := tx.StmtContext(ctx, updateStmt).QueryRowContext(ctx, @@ -384,7 +393,7 @@ geodref, &dateInfo, source, - time.Time(*dr.Lastupdate), + lu.ToGoTime(), &validity, ).Scan(&dummy) switch { diff -r df40d55f7c9a -r e1936db6db8e pkg/soap/erdms2/service.go --- a/pkg/soap/erdms2/service.go Mon Oct 31 17:03:34 2022 +0100 +++ b/pkg/soap/erdms2/service.go Mon Oct 31 17:51:54 2022 +0100 @@ -1732,6 +1732,10 @@ client *soap.SOAPClient } +func NewRefService(url string, tls bool, auth *soap.BasicAuth) RefWeb { + return NewRefWeb(soap.NewSOAPClient(url, tls, auth)) +} + func NewRefWeb(client *soap.SOAPClient) RefWeb { return &refWeb{ client: client,