From 8118ae7dc97523db246e4053a0643452bcb8d8f7 Mon Sep 17 00:00:00 2001
From: Baptiste Toulemonde <toulemonde@cines.fr>
Date: Fri, 5 Nov 2021 10:06:16 +0100
Subject: [PATCH] wip

---
 ...a => SmartHarvesterMappingController.java} | 32 +++++++++++++++++--
 .../service/MappingService.java               | 29 +++--------------
 2 files changed, 33 insertions(+), 28 deletions(-)
 rename src/main/java/com/smartharvester/controller/{SmartHarvesterTransformerController.java => SmartHarvesterMappingController.java} (50%)

diff --git a/src/main/java/com/smartharvester/controller/SmartHarvesterTransformerController.java b/src/main/java/com/smartharvester/controller/SmartHarvesterMappingController.java
similarity index 50%
rename from src/main/java/com/smartharvester/controller/SmartHarvesterTransformerController.java
rename to src/main/java/com/smartharvester/controller/SmartHarvesterMappingController.java
index 8709a89..3942b3a 100644
--- a/src/main/java/com/smartharvester/controller/SmartHarvesterTransformerController.java
+++ b/src/main/java/com/smartharvester/controller/SmartHarvesterMappingController.java
@@ -1,14 +1,21 @@
 package com.smartharvester.controller;
 
+import java.util.List;
+
+import org.json.JSONException;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.CrossOrigin;
 import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
+import com.smartharvester.model.Path;
 import com.smartharvester.service.MappingFromIsoService;
+import com.smartharvester.service.MappingService;
 
 import io.swagger.v3.oas.annotations.tags.Tag;
 
@@ -16,18 +23,37 @@ import io.swagger.v3.oas.annotations.tags.Tag;
 @RequestMapping("/harvester/api/transform")
 @Tag(name = "Harvest",description = "transform xml iso 19115 to RDF")
 @RestController
-public class SmartHarvesterTransformerController {
+public class SmartHarvesterMappingController {
+	
+	@Autowired
+	private MappingFromIsoService mappingFromIsoService;
 	
 	@Autowired
-	private MappingFromIsoService mappingService;
+	private MappingService mappingService;
+	
 	
 	@GetMapping
 	public ResponseEntity<String> transformXmlToRdf(@RequestParam  (value="url") String url, @RequestParam  (value="catalogId") String catalogId) {
 		try {
-			return ResponseEntity.ok().body(this.mappingService.mapfromCWStoRDF(url, catalogId));
+			return ResponseEntity.ok().body(this.mappingFromIsoService.mapfromCWStoRDF(url, catalogId));
 		} catch (Exception e) {
 			return ResponseEntity.badRequest().body("ERROR " +  e.getMessage());
 		}
 	}
+	
+	@PostMapping
+	public ResponseEntity<String> map(@RequestBody Path[] paths, @RequestBody List<String> urlRepos, @RequestParam String catalogId, @RequestParam String fdpUrl) {
+		
+		urlRepos.stream().forEach(url -> {
+			try {
+				String dataset = this.mappingService.createRDF(url, paths, catalogId, fdpUrl);
+				return ResponseEntity.ok().body(url);
+			} catch (JSONException e) {
+				return ResponseEntity.badRequest().body("ERROR " +  e.getMessage());
+			}
+			
+		}); 
+		
+	}
 
 }
diff --git a/src/main/java/com/smartharvester/service/MappingService.java b/src/main/java/com/smartharvester/service/MappingService.java
index f074eb4..418714c 100644
--- a/src/main/java/com/smartharvester/service/MappingService.java
+++ b/src/main/java/com/smartharvester/service/MappingService.java
@@ -24,12 +24,14 @@ import org.json.JSONException;
 import org.json.JSONObject;
 import org.json.simple.parser.JSONParser;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
 
 import com.google.gson.stream.JsonReader;
 import com.smartharvester.model.Path;
 
 import io.swagger.util.Json;
 
+@Service
 public class MappingService {
 	public static String getDatasetString(String catId, String properties, String fdpUrl) {
 		String dataset = "@prefix dcat: <http://www.w3.org/ns/dcat#>. \n"
@@ -94,7 +96,7 @@ public class MappingService {
 		return property;
 	}
 
-	public static String createRDF(String urlRepo, Path[] paths, String catalogId, String fdpUrl) throws JSONException {
+	public  String createRDF(String urlRepo, Path[] paths, String catalogId, String fdpUrl) throws JSONException {
 		String properties = "";
 		JSONObject json = null;
 
@@ -167,7 +169,7 @@ public class MappingService {
 
 	}
 
-	private static String readStream(InputStream input) throws IOException {
+	private static  String readStream(InputStream input) throws IOException {
 		StringBuilder sb = new StringBuilder();
 		BufferedReader reader = new BufferedReader(new InputStreamReader(input), 1000);
 		for (String line = reader.readLine(); line != null; line = reader.readLine()) {
@@ -177,29 +179,6 @@ public class MappingService {
 		return sb.toString();
 	}
 
-	public static void main(String[] args) throws IOException {
-
-		Path path1 = new Path();
-		Path path2 = new Path();
-		Path path3 = new Path();
-		Path path4 = new Path();
-		path1.setProperty("dct:title");
-		path1.setPath("response : docs : 0 : title");
-		path2.setProperty("dct:description");
-		path2.setPath("mresponse : docs : 0 : further_info_url : 0");
-		path3.setProperty("dct:publisher");
-		path3.setPath("response : docs : 0 : data_node");
-		path4.setPath("response : docs : 0 : geo");
-		path4.setProperty("dct:spatial");
-		Path[] paths = { path1, path2, path3, path4 };
-		try {
-			System.out.println(createRDF(
-					"https://esgf-data.dkrz.de/esg-search//search?format=application%2Fsolr%2Bjson&id=CMIP6.ScenarioMIP.DKRZ.MPI-ESM1-2-HR.ssp585.r1i1p1f1.Amon.tasmin.gn.v20190710%7Cesgf3.dkrz.de",
-					paths, "121321231231231", "https://f2ds.eosc-pillar.eu"));
-		} catch (JSONException e) {
-			e.printStackTrace();
-		}
 
-	}
 
 }
-- 
GitLab