changeset 4189:2ac52d89619e

Exposed the import to delete sections under POST /api/imports/dsec with a JSON input as '{ "id": 42 }'.
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Wed, 07 Aug 2019 15:23:41 +0200
parents f8b7db7e392a
children 0601143ffd02 e3210c87f497
files pkg/controllers/routes.go pkg/imports/modelconvert.go pkg/models/imports.go
diffstat 3 files changed, 22 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/pkg/controllers/routes.go	Wed Aug 07 13:11:16 2019 +0200
+++ b/pkg/controllers/routes.go	Wed Aug 07 15:23:41 2019 +0200
@@ -247,7 +247,7 @@
 	kinds := strings.Join([]string{
 		"bn", "gm", "fa", "wx", "wa",
 		"wg", "dmv", "fd", "dma",
-		"sec",
+		"sec", "dsec",
 	}, "|")
 
 	api.Handle("/imports/{kind:"+kinds+"}", waterwayAdmin(&JSONHandler{
--- a/pkg/imports/modelconvert.go	Wed Aug 07 13:11:16 2019 +0200
+++ b/pkg/imports/modelconvert.go	Wed Aug 07 15:23:41 2019 +0200
@@ -18,17 +18,18 @@
 )
 
 var kindToImportModel = map[JobKind]func() interface{}{
-	BNJobKind:  func() interface{} { return new(models.BottleneckImport) },
-	GMJobKind:  func() interface{} { return new(models.GaugeMeasurementImport) },
-	FAJobKind:  func() interface{} { return new(models.FairwayAvailabilityImport) },
-	WXJobKind:  func() interface{} { return new(models.WaterwayAxisImport) },
-	WAJobKind:  func() interface{} { return new(models.WaterwayAreaImport) },
-	WGJobKind:  func() interface{} { return new(models.WaterwayGaugeImport) },
-	DMVJobKind: func() interface{} { return new(models.DistanceMarksVirtualImport) },
-	FDJobKind:  func() interface{} { return new(models.FairwayDimensionImport) },
-	DMAJobKind: func() interface{} { return new(models.DistanceMarksAshoreImport) },
-	STJobKind:  func() interface{} { return new(models.StretchImport) },
-	SECJobKind: func() interface{} { return new(models.SectionImport) },
+	BNJobKind:   func() interface{} { return new(models.BottleneckImport) },
+	GMJobKind:   func() interface{} { return new(models.GaugeMeasurementImport) },
+	FAJobKind:   func() interface{} { return new(models.FairwayAvailabilityImport) },
+	WXJobKind:   func() interface{} { return new(models.WaterwayAxisImport) },
+	WAJobKind:   func() interface{} { return new(models.WaterwayAreaImport) },
+	WGJobKind:   func() interface{} { return new(models.WaterwayGaugeImport) },
+	DMVJobKind:  func() interface{} { return new(models.DistanceMarksVirtualImport) },
+	FDJobKind:   func() interface{} { return new(models.FairwayDimensionImport) },
+	DMAJobKind:  func() interface{} { return new(models.DistanceMarksAshoreImport) },
+	STJobKind:   func() interface{} { return new(models.StretchImport) },
+	SECJobKind:  func() interface{} { return new(models.SectionImport) },
+	DSECJobKind: func() interface{} { return new(models.SectionDelete) },
 }
 
 // ImportModelForJobKind returns the constructor function to
@@ -161,6 +162,11 @@
 			Date:      seci.Date,
 		}
 	},
+
+	DSECJobKind: func(input interface{}) interface{} {
+		ds := input.(*models.SectionDelete)
+		return &DeleteSection{ID: ds.ID}
+	},
 }
 
 func nilString(s *string) string {
--- a/pkg/models/imports.go	Wed Aug 07 13:11:16 2019 +0200
+++ b/pkg/models/imports.go	Wed Aug 07 15:23:41 2019 +0200
@@ -120,6 +120,10 @@
 		Source    string  `json:"source-organization"`
 		Date      Date    `json:"date-info"`
 	}
+
+	SectionDelete struct {
+		ID int64 `json:"id"`
+	}
 )
 
 func (cui *ConfigurableURLImport) MarshalAttributes(attrs common.Attributes) error {