@@ -26,6 +26,7 @@ package v2beta1
2626
2727import (
2828 "log"
29+ "strconv"
2930
3031 pdoknlv3 "github.com/pdok/mapserver-operator/api/v3"
3132 smoothoperatormodel "github.com/pdok/smooth-operator/model"
@@ -43,7 +44,7 @@ func (src *WFS) ConvertTo(dstRaw conversion.Hub) error {
4344 return src .ToV3 (dst )
4445}
4546
46- //nolint:gosec
47+ //nolint:gosec,funlen,cyclop
4748func (src * WFS ) ToV3 (dst * pdoknlv3.WFS ) error {
4849 dst .ObjectMeta = src .ObjectMeta
4950
@@ -76,6 +77,20 @@ func (src *WFS) ToV3(dst *pdoknlv3.WFS) error {
7677 return err
7778 }
7879
80+ accessConstraints , err := url .Parse ("https://creativecommons.org/publicdomain/zero/1.0/deed.nl" )
81+ if err != nil {
82+ return err
83+ }
84+ if src .Spec .Service .AccessConstraints != nil {
85+ accessConstraints , err = url .Parse (* src .Spec .Service .AccessConstraints )
86+ if err != nil {
87+ return err
88+ }
89+ }
90+
91+ if err != nil {
92+ return err
93+ }
7994 service := pdoknlv3.WFSService {
8095 Prefix : src .Spec .General .Dataset ,
8196 URL : * url ,
@@ -84,7 +99,7 @@ func (src *WFS) ToV3(dst *pdoknlv3.WFS) error {
8499 Abstract : src .Spec .Service .Abstract ,
85100 Keywords : src .Spec .Service .Keywords ,
86101 Fees : nil ,
87- AccessConstraints : src . Spec . Service . AccessConstraints ,
102+ AccessConstraints : smoothoperatormodel. URL { URL : accessConstraints } ,
88103 DefaultCrs : src .Spec .Service .DataEPSG ,
89104 OtherCrs : []string {
90105 "EPSG::25831" ,
@@ -95,10 +110,17 @@ func (src *WFS) ToV3(dst *pdoknlv3.WFS) error {
95110 "EPSG::4258" ,
96111 "EPSG::4326" ,
97112 },
98- CountDefault : src .Spec .Service .Maxfeatures ,
99113 FeatureTypes : make ([]pdoknlv3.FeatureType , 0 ),
100114 }
101115
116+ if src .Spec .Service .Maxfeatures != nil {
117+ maxFeatures , err := strconv .Atoi (* src .Spec .Service .Maxfeatures )
118+ if err != nil {
119+ return err
120+ }
121+ service .CountDefault = & maxFeatures
122+ }
123+
102124 if src .Spec .Service .Mapfile != nil {
103125 service .Mapfile = & pdoknlv3.Mapfile {
104126 ConfigMapKeyRef : src .Spec .Service .Mapfile .ConfigMapKeyRef ,
@@ -148,7 +170,7 @@ func convertV2FeatureTypeToV3(src FeatureType) pdoknlv3.FeatureType {
148170 Title : src .Title ,
149171 Abstract : src .Abstract ,
150172 Keywords : src .Keywords ,
151- DatasetMetadataURL : pdoknlv3.MetadataURL {
173+ DatasetMetadataURL : & pdoknlv3.MetadataURL {
152174 CSW : & pdoknlv3.Metadata {
153175 MetadataIdentifier : src .DatasetMetadataIdentifier ,
154176 },
@@ -190,19 +212,24 @@ func (dst *WFS) ConvertFrom(srcRaw conversion.Hub) error {
190212 }
191213 }
192214
215+ accessConstraints := src .Spec .Service .AccessConstraints .String ()
216+
193217 service := WFSService {
194218 Title : src .Spec .Service .Title ,
195219 Abstract : src .Spec .Service .Abstract ,
196220 Keywords : src .Spec .Service .Keywords ,
197- AccessConstraints : src . Spec . Service . AccessConstraints ,
221+ AccessConstraints : & accessConstraints ,
198222 DataEPSG : src .Spec .Service .DefaultCrs ,
199- Maxfeatures : src .Spec .Service .CountDefault ,
200223 Authority : Authority {
201224 Name : "" ,
202225 URL : "" ,
203226 },
204227 }
205228
229+ if src .Spec .Service .CountDefault != nil {
230+ service .Maxfeatures = smoothoperatorutils .Pointer (strconv .Itoa (* src .Spec .Service .CountDefault ))
231+ }
232+
206233 if src .Spec .Service .Bbox != nil {
207234 service .Extent = smoothoperatorutils .Pointer (src .Spec .Service .Bbox .DefaultCRS .ToExtent ())
208235 } else {
0 commit comments