# HG changeset patch # User Sascha L. Teichmann # Date 1548329052 -3600 # Node ID 9c65153bb56e4745ed11fc4e1a14a20ff390f393 # Parent 0a8b9100d0f296f30b6aefb8e65fe2f1708ee801 Manual import controller: Simplified code. diff -r 0a8b9100d0f2 -r 9c65153bb56e pkg/controllers/manualimports.go --- a/pkg/controllers/manualimports.go Thu Jan 24 09:46:30 2019 +0100 +++ b/pkg/controllers/manualimports.go Thu Jan 24 12:24:12 2019 +0100 @@ -26,6 +26,121 @@ "gemma.intevation.de/gemma/pkg/models" ) +func importBottleneck(input interface{}) (interface{}, common.Attributes, bool) { + bi := input.(*models.BottleneckImport) + bn := &imports.Bottleneck{ + URL: bi.URL, + Insecure: bi.Insecure, + } + return bn, bi.Attributes, bi.SendEmail +} + +func importGaugeMeasurement(input interface{}) (interface{}, common.Attributes, bool) { + gi := input.(*models.GaugeMeasurementImport) + gm := &imports.GaugeMeasurement{ + URL: gi.URL, + Insecure: gi.Insecure, + } + return gm, gi.Attributes, gi.SendEmail +} + +func importFairwayAvailability(input interface{}) (interface{}, common.Attributes, bool) { + fai := input.(*models.FairwayAvailabilityImport) + fa := &imports.FairwayAvailability{ + URL: fai.URL, + Insecure: fai.Insecure, + } + return fa, fai.Attributes, fai.SendEmail +} + +func importWaterwayAxis(input interface{}) (interface{}, common.Attributes, bool) { + wxi := input.(*models.WaterwayAxisImport) + wx := &imports.WaterwayAxis{ + URL: wxi.URL, + FeatureType: wxi.FeatureType, + SortBy: wxi.SortBy, + } + return wx, wxi.Attributes, wxi.SendEmail +} + +func importWaterwayArea(input interface{}) (interface{}, common.Attributes, bool) { + wai := input.(*models.WaterwayAreaImport) + wa := &imports.WaterwayArea{ + URL: wai.URL, + FeatureType: wai.FeatureType, + SortBy: wai.SortBy, + } + return wa, wai.Attributes, wai.SendEmail +} + +func importWaterwayGauge(input interface{}) (interface{}, common.Attributes, bool) { + wgi := input.(*models.WaterwayGaugeImport) + username, _ := wgi.Attributes.Get("username") + password, _ := wgi.Attributes.Get("password") + insecure := wgi.Attributes.Bool("insecure") + wg := &imports.WaterwayGauge{ + URL: wgi.URL, + Username: username, + Password: password, + Insecure: insecure, + } + return wg, wgi.Attributes, wgi.SendEmail +} + +func importDistancemarksVirtual(input interface{}) (interface{}, common.Attributes, bool) { + dmvi := input.(*models.DistanceMarksVirtualImport) + username, _ := dmvi.Attributes.Get("username") + password, _ := dmvi.Attributes.Get("password") + insecure := dmvi.Attributes.Bool("insecure") + wg := &imports.DistanceMarksVirtual{ + URL: dmvi.URL, + Username: username, + Password: password, + Insecure: insecure, + } + return wg, dmvi.Attributes, dmvi.SendEmail +} + +func importFairwayDimension(input interface{}) (interface{}, common.Attributes, bool) { + fdi := input.(*models.FairwayDimensionImport) + fd := &imports.FairwayDimension{ + URL: fdi.URL, + FeatureType: fdi.FeatureType, + SortBy: fdi.SortBy, + LOS: fdi.LOS, + MinWidth: fdi.MinWidth, + MaxWidth: fdi.MaxWidth, + Depth: fdi.Depth, + SourceOrganization: fdi.SourceOrganization, + } + return fd, fdi.Attributes, fdi.SendEmail +} + +func importDistanceMarksAshore(input interface{}) (interface{}, common.Attributes, bool) { + dmai := input.(*models.DistanceMarksAshoreImport) + dma := &imports.DistanceMarksAshore{ + URL: dmai.URL, + FeatureType: dmai.FeatureType, + SortBy: dmai.SortBy, + } + return dma, dmai.Attributes, dmai.SendEmail +} + +func importStretch(input interface{}) (interface{}, common.Attributes, bool) { + sti := input.(*models.StretchImport) + st := &imports.Stretch{ + Name: sti.Name, + From: sti.From, + To: sti.To, + ObjNam: sti.ObjNam, + NObjNam: sti.NObjNam, + Source: sti.Source, + Date: sti.Date, + Countries: sti.Countries, + } + return st, sti.Attributes, sti.SendEmail +} + func retry(a common.Attributes) (time.Time, *int, *time.Duration) { due, _ := a.Time("due") ret, ok := a.Int("retries") @@ -41,140 +156,17 @@ return due, retries, duration } -func importBottleneck(input interface{}) (interface{}, time.Time, *int, *time.Duration, bool) { - bi := input.(*models.BottleneckImport) - bn := &imports.Bottleneck{ - URL: bi.URL, - Insecure: bi.Insecure, - } - due, retries, duration := retry(bi.Attributes) - return bn, due, retries, duration, bi.SendEmail -} - -func importGaugeMeasurement(input interface{}) (interface{}, time.Time, *int, *time.Duration, bool) { - gi := input.(*models.GaugeMeasurementImport) - gm := &imports.GaugeMeasurement{ - URL: gi.URL, - Insecure: gi.Insecure, - } - due, retries, duration := retry(gi.Attributes) - return gm, due, retries, duration, gi.SendEmail -} - -func importFairwayAvailability(input interface{}) (interface{}, time.Time, *int, *time.Duration, bool) { - fai := input.(*models.FairwayAvailabilityImport) - fa := &imports.FairwayAvailability{ - URL: fai.URL, - Insecure: fai.Insecure, - } - due, retries, duration := retry(fai.Attributes) - return fa, due, retries, duration, fai.SendEmail -} - -func importWaterwayAxis(input interface{}) (interface{}, time.Time, *int, *time.Duration, bool) { - wxi := input.(*models.WaterwayAxisImport) - wx := &imports.WaterwayAxis{ - URL: wxi.URL, - FeatureType: wxi.FeatureType, - SortBy: wxi.SortBy, - } - due, retries, duration := retry(wxi.Attributes) - return wx, due, retries, duration, wxi.SendEmail -} - -func importWaterwayArea(input interface{}) (interface{}, time.Time, *int, *time.Duration, bool) { - wai := input.(*models.WaterwayAreaImport) - wa := &imports.WaterwayArea{ - URL: wai.URL, - FeatureType: wai.FeatureType, - SortBy: wai.SortBy, - } - due, retries, duration := retry(wai.Attributes) - return wa, due, retries, duration, wai.SendEmail -} - -func importWaterwayGauge(input interface{}) (interface{}, time.Time, *int, *time.Duration, bool) { - wgi := input.(*models.WaterwayGaugeImport) - username, _ := wgi.Attributes.Get("username") - password, _ := wgi.Attributes.Get("password") - insecure := wgi.Attributes.Bool("insecure") - wg := &imports.WaterwayGauge{ - URL: wgi.URL, - Username: username, - Password: password, - Insecure: insecure, - } - due, retries, duration := retry(wgi.Attributes) - return wg, due, retries, duration, wgi.SendEmail -} - -func importDistancemarksVirtual(input interface{}) (interface{}, time.Time, *int, *time.Duration, bool) { - dmvi := input.(*models.DistanceMarksVirtualImport) - username, _ := dmvi.Attributes.Get("username") - password, _ := dmvi.Attributes.Get("password") - insecure := dmvi.Attributes.Bool("insecure") - wg := &imports.DistanceMarksVirtual{ - URL: dmvi.URL, - Username: username, - Password: password, - Insecure: insecure, - } - due, retries, duration := retry(dmvi.Attributes) - return wg, due, retries, duration, dmvi.SendEmail -} - -func importFairwayDimension(input interface{}) (interface{}, time.Time, *int, *time.Duration, bool) { - fdi := input.(*models.FairwayDimensionImport) - fd := &imports.FairwayDimension{ - URL: fdi.URL, - FeatureType: fdi.FeatureType, - SortBy: fdi.SortBy, - LOS: fdi.LOS, - MinWidth: fdi.MinWidth, - MaxWidth: fdi.MaxWidth, - Depth: fdi.Depth, - SourceOrganization: fdi.SourceOrganization, - } - due, retries, duration := retry(fdi.Attributes) - return fd, due, retries, duration, fdi.SendEmail -} - -func importDistanceMarksAshore(input interface{}) (interface{}, time.Time, *int, *time.Duration, bool) { - dmai := input.(*models.DistanceMarksAshoreImport) - dma := &imports.DistanceMarksAshore{ - URL: dmai.URL, - FeatureType: dmai.FeatureType, - SortBy: dmai.SortBy, - } - due, retries, duration := retry(dmai.Attributes) - return dma, due, retries, duration, dmai.SendEmail -} - -func importStretch(input interface{}) (interface{}, time.Time, *int, *time.Duration, bool) { - sti := input.(*models.StretchImport) - st := &imports.Stretch{ - Name: sti.Name, - From: sti.From, - To: sti.To, - ObjNam: sti.ObjNam, - NObjNam: sti.NObjNam, - Source: sti.Source, - Date: sti.Date, - Countries: sti.Countries, - } - due, retries, duration := retry(sti.Attributes) - return st, due, retries, duration, sti.SendEmail -} - func manualImport( kind imports.JobKind, - setup func(interface{}) (interface{}, time.Time, *int, *time.Duration, bool), + setup func(interface{}) (interface{}, common.Attributes, bool), ) func(interface{}, *http.Request, *sql.Conn) (JSONResult, error) { return func(input interface{}, req *http.Request, _ *sql.Conn) ( jr JSONResult, err error) { - what, due, retries, waitDuration, sendEmail := setup(input) + what, attrs, sendEmail := setup(input) + + due, retries, waitRetry := retry(attrs) var serialized string if serialized, err = common.ToJSONString(what); err != nil { @@ -188,7 +180,7 @@ kind, due, retries, - waitDuration, + waitRetry, session.User, sendEmail, serialized,