diff --git a/src/main/java/com/smartharvester/controller/SmartHarvesterTransformerController.java b/src/main/java/com/smartharvester/controller/SmartHarvesterTransformerController.java new file mode 100644 index 0000000000000000000000000000000000000000..8709a892b93a2147a36264ed472edc589e888c6e --- /dev/null +++ b/src/main/java/com/smartharvester/controller/SmartHarvesterTransformerController.java @@ -0,0 +1,33 @@ +package com.smartharvester.controller; + +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.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import com.smartharvester.service.MappingFromIsoService; + +import io.swagger.v3.oas.annotations.tags.Tag; + +@CrossOrigin(origins = "*") +@RequestMapping("/harvester/api/transform") +@Tag(name = "Harvest",description = "transform xml iso 19115 to RDF") +@RestController +public class SmartHarvesterTransformerController { + + @Autowired + private MappingFromIsoService 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)); + } catch (Exception e) { + return ResponseEntity.badRequest().body("ERROR " + e.getMessage()); + } + } + +} diff --git a/src/main/java/com/smartharvester/service/MappingFromIsoService.java b/src/main/java/com/smartharvester/service/MappingFromIsoService.java new file mode 100644 index 0000000000000000000000000000000000000000..fd732d37788cedb0658cd180109cd0ad0c43788a --- /dev/null +++ b/src/main/java/com/smartharvester/service/MappingFromIsoService.java @@ -0,0 +1,39 @@ +package com.smartharvester.service; + + +import java.io.StringWriter; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.stream.StreamResult; +import javax.xml.transform.stream.StreamSource; + +import org.springframework.stereotype.Service; + +@Service +public class MappingFromIsoService { + + public String mapfromCWStoRDF(String url, String catalogId) throws Exception { + + StreamSource xslt = new StreamSource("https://raw.githubusercontent.com/baptiste-Cines/tesXsl/master/test.xsl"); + + + StreamSource xml = new StreamSource(url); + TransformerFactory factory = TransformerFactory.newInstance(); + + Transformer transformer = factory.newTransformer(xslt); + transformer.setParameter("catalogId", catalogId); + transformer.setParameter("outputSchema", "extended"); + + StringWriter writer = new StringWriter(); + StreamResult result = new StreamResult(writer); + + + transformer.transform(xml, result); + + + return writer.toString(); + } + + + +}