Fix landingPage in the free resource web-service (#799).
Change-Id: Icecd0c121170493d4a115b2af1ecb26e4b1b1849
diff --git a/Changes b/Changes
index 3f7d254..76170f3 100644
--- a/Changes
+++ b/Changes
@@ -18,6 +18,7 @@
- Added statisticsRewriteHandler and queryContextRewrite,
- changed file locations to the data folder,
- removed unused beans (cacheManager, sqliteDataSource)
+- Fix landingPage in the free resource web-service.
# version 0.76
diff --git a/src/main/java/de/ids_mannheim/korap/annotation/FreeResourceParser.java b/src/main/java/de/ids_mannheim/korap/annotation/FreeResourceParser.java
index be84ed9..777f511 100644
--- a/src/main/java/de/ids_mannheim/korap/annotation/FreeResourceParser.java
+++ b/src/main/java/de/ids_mannheim/korap/annotation/FreeResourceParser.java
@@ -67,6 +67,15 @@
resource.at("/institution").asText(),
resource.at("/corpus_query").asText());
}
+ else {
+ resourceDao.updateResource(resource.at("/id").asText(),
+ resource.at("/de_title").asText(),
+ resource.at("/en_title").asText(),
+ resource.at("/en_description").asText(),
+ layers,
+ resource.at("/institution").asText(),
+ resource.at("/corpus_query").asText());
+ }
}
catch (Exception e) {
log.warn("Failed creating resource: " + e.getMessage());
diff --git a/src/main/java/de/ids_mannheim/korap/dao/ResourceDao.java b/src/main/java/de/ids_mannheim/korap/dao/ResourceDao.java
index 79cfad7..5655980 100644
--- a/src/main/java/de/ids_mannheim/korap/dao/ResourceDao.java
+++ b/src/main/java/de/ids_mannheim/korap/dao/ResourceDao.java
@@ -80,4 +80,19 @@
entityManager.persist(r);
}
+
+ @Transactional
+ public void updateResource (String id, String germanTitle,
+ String englishTitle, String englishDescription,
+ Set<AnnotationLayer> layers, String institution,
+ String corpusQuery) throws KustvaktException {
+ ParameterChecker.checkStringValue(id, "id");
+ ParameterChecker.checkStringValue(englishTitle, "en_title");
+ ParameterChecker.checkStringValue(germanTitle, "de_title");
+
+ Resource r = new Resource(id, germanTitle, englishTitle,
+ englishDescription, layers, institution, corpusQuery);
+ entityManager.merge(r);
+
+ }
}
diff --git a/src/main/java/de/ids_mannheim/korap/dto/converter/ResourceConverter.java b/src/main/java/de/ids_mannheim/korap/dto/converter/ResourceConverter.java
index 5f13d52..c1a207f 100644
--- a/src/main/java/de/ids_mannheim/korap/dto/converter/ResourceConverter.java
+++ b/src/main/java/de/ids_mannheim/korap/dto/converter/ResourceConverter.java
@@ -48,7 +48,8 @@
layers.put(annotationPair.getId(), code);
}
dto.setLayers(layers);
- dto.setLandingPage("https://korap.ids-mannheim.de?" +r.getCorpusQuery());
+ dto.setLandingPage("https://korap.ids-mannheim.de?cq=" +
+ r.getCorpusQuery());
dto.setInstitution(r.getInstitution());
resourceDtoList.add(dto);
diff --git a/src/test/java/de/ids_mannheim/korap/web/controller/FreeResourceControllerTest.java b/src/test/java/de/ids_mannheim/korap/web/controller/FreeResourceControllerTest.java
index 2343dd7..99296a1 100644
--- a/src/test/java/de/ids_mannheim/korap/web/controller/FreeResourceControllerTest.java
+++ b/src/test/java/de/ids_mannheim/korap/web/controller/FreeResourceControllerTest.java
@@ -31,7 +31,7 @@
assertEquals(1, n.at("/languages").size());
assertEquals(6, n.at("/layers").size());
assertEquals("Wikimedia Foundation", n.at("/institution").asText());
- assertEquals("https://korap.ids-mannheim.de?corpusSigle=WPD17",
+ assertEquals("https://korap.ids-mannheim.de?cq=corpusSigle=WPD17",
n.at("/landingPage").asText());
}
}