@@ -16,6 +16,7 @@ func MapAtomV3ToAtomGeneratorConfig(atom pdoknlv3.Atom) (atomGeneratorConfig ato
1616 searchLink := getLinkByRelation (atom , language , "search" )
1717 upLink := getLinkByRelation (atom , language , "up" )
1818 relatedLink := getLinkByRelation (atom , language , "related" )
19+ latestUpdated := getLatestUpdate (atom .Spec .DatasetFeeds )
1920
2021 atomGeneratorConfig = atom_feed.Feeds {
2122 Feeds : []atom_feed.Feed {
@@ -37,33 +38,45 @@ func MapAtomV3ToAtomGeneratorConfig(atom pdoknlv3.Atom) (atomGeneratorConfig ato
3738 Link : []atom_feed.Link {
3839 relatedLink ,
3940 },
40- Rights : atom .Spec .Service .Rights ,
41- // Updated: atom.Spec.Service.U niet meer vindbaar
42- Author : getAuthor (atom .Spec .Author ),
43- Entry : getEntriesArray (atom ),
41+ Rights : atom .Spec .Service .Rights ,
42+ Updated : & latestUpdated ,
43+ Author : getAuthor (atom .Spec .Author ),
44+ Entry : getEntriesArray (atom ),
4445 },
4546 },
4647 }
4748 return atomGeneratorConfig , err
4849}
4950
51+ func getLatestUpdate (feeds []pdoknlv3.DatasetFeed ) string {
52+ updateTime := feeds [0 ].Entries [0 ].Updated
53+ for _ , datasetFeed := range feeds {
54+ for _ , entry := range datasetFeed .Entries {
55+ if updateTime .Before (entry .Updated ) {
56+ updateTime = entry .Updated
57+ }
58+ }
59+ }
60+ return updateTime .Format (time .RFC3339 )
61+ }
62+
5063func getEntriesArray (atom pdoknlv3.Atom ) []atom_feed.Entry {
5164 var retEntriesArray []atom_feed.Entry
5265 for _ , datasetFeed := range atom .Spec .DatasetFeeds {
5366 for _ , entry := range datasetFeed .Entries {
5467 updateTime := entry .Updated .Format (time .RFC3339 )
5568
5669 singleEntry := atom_feed.Entry {
57- ID : entry .TechnicalName ,
58- Title : entry .Title ,
59- Content : entry .Content ,
60- // Summary: entry. ,
61- // Rights: entry.Right ,
62- Updated : & updateTime ,
63- Polygon : getBoundingBoxPolygon (entry .Polygon ),
64- // SpatialDatasetIdentifierCode: nil ,
65- // SpatialDatasetIdentifierNamespace: nil ,
66- // Category: nil ,
70+ ID : entry .TechnicalName ,
71+ Title : entry .Title ,
72+ Content : entry .Content ,
73+ Summary : datasetFeed . Subtitle ,
74+ Rights : atom . Spec . Service . Rights ,
75+ Updated : & updateTime ,
76+ Polygon : getBoundingBoxPolygon (entry .Polygon . BBox ),
77+ SpatialDatasetIdentifierCode : datasetFeed . SpatialDatasetIdentifierCode ,
78+ SpatialDatasetIdentifierNamespace : datasetFeed . SpatialDatasetIdentifierNamespace ,
79+ Category : getCategory ( entry . SRS ) ,
6780 //Link: nil, // []Links
6881 }
6982 retEntriesArray = append (retEntriesArray , singleEntry )
@@ -73,18 +86,28 @@ func getEntriesArray(atom pdoknlv3.Atom) []atom_feed.Entry {
7386 return retEntriesArray
7487}
7588
76- func getBoundingBoxPolygon (polygon * pdoknlv3.Polygon ) string {
89+ func getCategory (srs * pdoknlv3.SRS ) []atom_feed.Category {
90+ cat := []atom_feed.Category {
91+ {
92+ Term : srs .URI ,
93+ Label : srs .Name ,
94+ },
95+ }
96+ return cat
97+ }
98+
99+ func getBoundingBoxPolygon (bbox pdoknlv3.BBox ) string {
77100 var sb strings.Builder
78101 // punt links beneden start van een polygon
79- sb .WriteString (polygon . BBox . MinX + " " + polygon . BBox .MinY + " " )
102+ sb .WriteString (bbox . MinX + " " + bbox .MinY + " " )
80103 // punt links boven start van een polygon
81- sb .WriteString (polygon . BBox . MinX + " " + polygon . BBox .MaxY + " " )
104+ sb .WriteString (bbox . MinX + " " + bbox .MaxY + " " )
82105 // punt rechts boven start van een polygon
83- sb .WriteString (polygon . BBox . MaxX + " " + polygon . BBox .MaxY + " " )
106+ sb .WriteString (bbox . MaxX + " " + bbox .MaxY + " " )
84107 // punt rechts beneden start van een polygon
85- sb .WriteString (polygon . BBox . MaxX + " " + polygon . BBox .MinY + " " )
108+ sb .WriteString (bbox . MaxX + " " + bbox .MinY + " " )
86109 // punt links beneden. eninde van een polygon is gelijk aan de start
87- sb .WriteString (polygon . BBox . MinX + " " + polygon . BBox .MinY + " " )
110+ sb .WriteString (bbox . MinX + " " + bbox .MinY + " " )
88111 return sb .String ()
89112}
90113
0 commit comments