@@ -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" ,
@@ -141,28 +137,7 @@ func convertV2FeatureTypeToV3(src FeatureType) pdoknlv3.FeatureType {
141137 }
142138 }
143139
144- if src .Data .GPKG != nil {
145- featureTypeV3 .Data .Gpkg = & pdoknlv3.Gpkg {
146- BlobKey : src .Data .GPKG .BlobKey ,
147- TableName : src .Data .GPKG .Table ,
148- GeometryType : src .Data .GPKG .GeometryType ,
149- Columns : ConverseColumnAndAliasesV2ToColumnsWithAliasV3 (
150- src .Data .GPKG .Columns ,
151- src .Data .GPKG .Aliases ,
152- ),
153- }
154- }
155-
156- if src .Data .Postgis != nil {
157- featureTypeV3 .Data .Postgis = & pdoknlv3.Postgis {
158- TableName : src .Data .Postgis .Table ,
159- GeometryType : src .Data .Postgis .GeometryType ,
160- Columns : ConverseColumnAndAliasesV2ToColumnsWithAliasV3 (
161- src .Data .Postgis .Columns ,
162- src .Data .Postgis .Aliases ,
163- ),
164- }
165- }
140+ featureTypeV3 .Data = ConverseV2DataToV3 (src .Data )
166141
167142 return featureTypeV3
168143}
@@ -177,55 +152,12 @@ func (dst *WFS) ConvertFrom(srcRaw conversion.Hub) error {
177152
178153 dst .ObjectMeta = src .ObjectMeta
179154
180- dst .Spec .General = General {
181- Dataset : src .ObjectMeta .Labels ["dataset" ],
182- DatasetOwner : src .ObjectMeta .Labels ["dataset-owner" ],
183- DataVersion : nil ,
184- }
185-
186- if serviceVersion , ok := src .ObjectMeta .Labels ["service-version" ]; ok {
187- dst .Spec .General .ServiceVersion = & serviceVersion
188- }
189-
190- if theme , ok := src .ObjectMeta .Labels ["theme" ]; ok {
191- dst .Spec .General .Theme = & theme
192- }
193-
194- dst .Spec .Kubernetes = Kubernetes {}
195-
196- if src .Spec .Lifecycle != nil && src .Spec .Lifecycle .TTLInDays != nil {
197- dst .Spec .Kubernetes .Lifecycle = & Lifecycle {
198- TTLInDays : Pointer (int (* src .Spec .Lifecycle .TTLInDays )),
199- }
200- }
201-
202- // TODO - healthcheck
203- if src .Spec .PodSpecPatch != nil {
204- dst .Spec .Kubernetes .Resources = & src .Spec .PodSpecPatch .Containers [0 ].Resources
205- }
206-
207- if src .Spec .HorizontalPodAutoscalerPatch != nil {
208- dst .Spec .Kubernetes .Autoscaling = & Autoscaling {
209- MaxReplicas : Pointer (int (src .Spec .HorizontalPodAutoscalerPatch .MaxReplicas )),
210- }
211-
212- if src .Spec .HorizontalPodAutoscalerPatch .MinReplicas != nil {
213- dst .Spec .Kubernetes .Autoscaling .MinReplicas = Pointer (int (* src .Spec .HorizontalPodAutoscalerPatch .MinReplicas ))
214- }
155+ dst .Spec .General = LabelsToV2General (src .ObjectMeta .Labels )
215156
216- if src .Spec .HorizontalPodAutoscalerPatch .Metrics != nil {
217- dst .Spec .Kubernetes .Autoscaling .AverageCPUUtilization = Pointer (
218- int (* src .Spec .HorizontalPodAutoscalerPatch .Metrics [0 ].Resource .TargetAverageUtilization ),
219- )
220- }
221- }
157+ dst .Spec .Kubernetes = NewV2KubernetesObject (src .Spec .Lifecycle , src .Spec .PodSpecPatch , src .Spec .HorizontalPodAutoscalerPatch )
222158
223- if src .Spec .Options == nil {
224- dst .Spec .Options = WMSWFSOptions {
225- AutomaticCasing : src .Spec .Options .AutomaticCasing ,
226- PrefetchData : & src .Spec .Options .PrefetchData ,
227- IncludeIngress : src .Spec .Options .IncludeIngress ,
228- }
159+ if src .Spec .Options != nil {
160+ dst .Spec .Options = ConverseOptionsV3ToV2 (src .Spec .Options )
229161 }
230162
231163 service := WFSService {
@@ -258,6 +190,7 @@ func (dst *WFS) ConvertFrom(srcRaw conversion.Hub) error {
258190 service .MetadataIdentifier = src .Spec .Service .Inspire .ServiceMetadataURL .CSW .MetadataIdentifier
259191 } else {
260192 service .Inspire = false
193+ // TODO unable to fill in MetadataIdentifier here untill we know how to handle non inspire services
261194 }
262195
263196 for _ , featureType := range src .Spec .Service .FeatureTypes {
@@ -268,7 +201,7 @@ func (dst *WFS) ConvertFrom(srcRaw conversion.Hub) error {
268201 Keywords : featureType .Keywords ,
269202 DatasetMetadataIdentifier : featureType .DatasetMetadataURL .CSW .MetadataIdentifier ,
270203 SourceMetadataIdentifier : "" ,
271- Data : Data {} ,
204+ Data : ConverseV3DataToV2 ( featureType . Data ) ,
272205 }
273206
274207 if src .Spec .Service .Inspire != nil {
@@ -279,27 +212,6 @@ func (dst *WFS) ConvertFrom(srcRaw conversion.Hub) error {
279212 featureTypeV2 .Extent = Pointer (featureType .Bbox .DefaultCRS .ToExtent ())
280213 }
281214
282- if featureType .Data .Gpkg != nil {
283- columns , aliases := ConverseColumnsWithAliasV3ToColumnsAndAliasesV2 (featureType .Data .Gpkg .Columns )
284- featureTypeV2 .Data .GPKG = & GPKG {
285- BlobKey : featureType .Data .Gpkg .BlobKey ,
286- Table : featureType .Data .Gpkg .TableName ,
287- GeometryType : featureType .Data .Gpkg .GeometryType ,
288- Columns : columns ,
289- Aliases : aliases ,
290- }
291- }
292-
293- if featureType .Data .Postgis != nil {
294- columns , aliases := ConverseColumnsWithAliasV3ToColumnsAndAliasesV2 (featureType .Data .Postgis .Columns )
295- featureTypeV2 .Data .Postgis = & Postgis {
296- Table : featureType .Data .Postgis .TableName ,
297- GeometryType : featureType .Data .Postgis .GeometryType ,
298- Columns : columns ,
299- Aliases : aliases ,
300- }
301- }
302-
303215 service .FeatureTypes = append (service .FeatureTypes , featureTypeV2 )
304216 }
305217
0 commit comments