@@ -57,13 +57,9 @@ func (src *WFS) ConvertTo(dstRaw conversion.Hub) error {
5757 dst .Spec .PodSpecPatch = ConverseResources (* src .Spec .Kubernetes .Resources )
5858 }
5959
60- dst .Spec .Options = & pdoknlv3.Options {
61- AutomaticCasing : src .Spec .Options .AutomaticCasing ,
62- PrefetchData : PointerValWithDefault (src .Spec .Options .PrefetchData , false ),
63- IncludeIngress : src .Spec .Options .IncludeIngress ,
64- }
60+ dst .Spec .Options = ConverseOptionsV2ToV3 (src .Spec .Options )
6561
66- service := pdoknlv3.Service {
62+ service := pdoknlv3.WFSService {
6763 Prefix : "" ,
6864 BaseURL : "https://service.pdok.nl" ,
6965 OwnerInfoRef : "pdok" ,
@@ -133,28 +129,7 @@ func convertV2FeatureTypeToV3(src FeatureType) pdoknlv3.FeatureType {
133129 }
134130 }
135131
136- if src .Data .GPKG != nil {
137- featureTypeV3 .Data .Gpkg = & pdoknlv3.Gpkg {
138- BlobKey : src .Data .GPKG .BlobKey ,
139- TableName : src .Data .GPKG .Table ,
140- GeometryType : src .Data .GPKG .GeometryType ,
141- Columns : ConverseColumnAndAliasesV2ToColumnsWithAliasV3 (
142- src .Data .GPKG .Columns ,
143- src .Data .GPKG .Aliases ,
144- ),
145- }
146- }
147-
148- if src .Data .Postgis != nil {
149- featureTypeV3 .Data .Postgis = & pdoknlv3.Postgis {
150- TableName : src .Data .Postgis .Table ,
151- GeometryType : src .Data .Postgis .GeometryType ,
152- Columns : ConverseColumnAndAliasesV2ToColumnsWithAliasV3 (
153- src .Data .Postgis .Columns ,
154- src .Data .Postgis .Aliases ,
155- ),
156- }
157- }
132+ featureTypeV3 .Data = ConverseV2DataToV3 (src .Data )
158133
159134 return featureTypeV3
160135}
@@ -169,55 +144,12 @@ func (dst *WFS) ConvertFrom(srcRaw conversion.Hub) error {
169144
170145 dst .ObjectMeta = src .ObjectMeta
171146
172- dst .Spec .General = General {
173- Dataset : src .ObjectMeta .Labels ["dataset" ],
174- DatasetOwner : src .ObjectMeta .Labels ["dataset-owner" ],
175- DataVersion : nil ,
176- }
177-
178- if serviceVersion , ok := src .ObjectMeta .Labels ["service-version" ]; ok {
179- dst .Spec .General .ServiceVersion = & serviceVersion
180- }
181-
182- if theme , ok := src .ObjectMeta .Labels ["theme" ]; ok {
183- dst .Spec .General .Theme = & theme
184- }
185-
186- dst .Spec .Kubernetes = Kubernetes {}
187-
188- if src .Spec .Lifecycle != nil && src .Spec .Lifecycle .TTLInDays != nil {
189- dst .Spec .Kubernetes .Lifecycle = & Lifecycle {
190- TTLInDays : Pointer (int (* src .Spec .Lifecycle .TTLInDays )),
191- }
192- }
193-
194- // TODO - healthcheck
195- if src .Spec .PodSpecPatch != nil {
196- dst .Spec .Kubernetes .Resources = & src .Spec .PodSpecPatch .Containers [0 ].Resources
197- }
198-
199- if src .Spec .HorizontalPodAutoscalerPatch != nil {
200- dst .Spec .Kubernetes .Autoscaling = & Autoscaling {
201- MaxReplicas : Pointer (int (src .Spec .HorizontalPodAutoscalerPatch .MaxReplicas )),
202- }
203-
204- if src .Spec .HorizontalPodAutoscalerPatch .MinReplicas != nil {
205- dst .Spec .Kubernetes .Autoscaling .MinReplicas = Pointer (int (* src .Spec .HorizontalPodAutoscalerPatch .MinReplicas ))
206- }
147+ dst .Spec .General = LabelsToV2General (src .ObjectMeta .Labels )
207148
208- if src .Spec .HorizontalPodAutoscalerPatch .Metrics != nil {
209- dst .Spec .Kubernetes .Autoscaling .AverageCPUUtilization = Pointer (
210- int (* src .Spec .HorizontalPodAutoscalerPatch .Metrics [0 ].Resource .TargetAverageUtilization ),
211- )
212- }
213- }
149+ dst .Spec .Kubernetes = NewV2KubernetesObject (src .Spec .Lifecycle , src .Spec .PodSpecPatch , src .Spec .HorizontalPodAutoscalerPatch )
214150
215- if src .Spec .Options == nil {
216- dst .Spec .Options = WMSWFSOptions {
217- AutomaticCasing : src .Spec .Options .AutomaticCasing ,
218- PrefetchData : & src .Spec .Options .PrefetchData ,
219- IncludeIngress : src .Spec .Options .IncludeIngress ,
220- }
151+ if src .Spec .Options != nil {
152+ dst .Spec .Options = ConverseOptionsV3ToV2 (src .Spec .Options )
221153 }
222154
223155 service := WFSService {
@@ -245,6 +177,7 @@ func (dst *WFS) ConvertFrom(srcRaw conversion.Hub) error {
245177 service .MetadataIdentifier = src .Spec .Service .Inspire .ServiceMetadataURL .CSW .MetadataIdentifier
246178 } else {
247179 service .Inspire = false
180+ // TODO unable to fill in MetadataIdentifier here untill we know how to handle non inspire services
248181 }
249182
250183 for _ , featureType := range src .Spec .Service .FeatureTypes {
@@ -255,7 +188,7 @@ func (dst *WFS) ConvertFrom(srcRaw conversion.Hub) error {
255188 Keywords : featureType .Keywords ,
256189 DatasetMetadataIdentifier : featureType .DatasetMetadataURL .CSW .MetadataIdentifier ,
257190 SourceMetadataIdentifier : "" ,
258- Data : Data {} ,
191+ Data : ConverseV3DataToV2 ( featureType . Data ) ,
259192 }
260193
261194 if src .Spec .Service .Inspire != nil {
@@ -266,27 +199,6 @@ func (dst *WFS) ConvertFrom(srcRaw conversion.Hub) error {
266199 featureTypeV2 .Extent = Pointer (featureType .Bbox .DefaultCRS .ToExtent ())
267200 }
268201
269- if featureType .Data .Gpkg != nil {
270- columns , aliases := ConverseColumnsWithAliasV3ToColumnsAndAliasesV2 (featureType .Data .Gpkg .Columns )
271- featureTypeV2 .Data .GPKG = & GPKG {
272- BlobKey : featureType .Data .Gpkg .BlobKey ,
273- Table : featureType .Data .Gpkg .TableName ,
274- GeometryType : featureType .Data .Gpkg .GeometryType ,
275- Columns : columns ,
276- Aliases : aliases ,
277- }
278- }
279-
280- if featureType .Data .Postgis != nil {
281- columns , aliases := ConverseColumnsWithAliasV3ToColumnsAndAliasesV2 (featureType .Data .Postgis .Columns )
282- featureTypeV2 .Data .Postgis = & Postgis {
283- Table : featureType .Data .Postgis .TableName ,
284- GeometryType : featureType .Data .Postgis .GeometryType ,
285- Columns : columns ,
286- Aliases : aliases ,
287- }
288- }
289-
290202 service .FeatureTypes = append (service .FeatureTypes , featureTypeV2 )
291203 }
292204
0 commit comments