Add required access to resources.
Change-Id: Ibfefebc609b5772be8040131dfcc5c60ba520f6e
diff --git a/src/main/java/de/ids_mannheim/korap/annotation/ResourceParser.java b/src/main/java/de/ids_mannheim/korap/annotation/ResourceParser.java
index 058fc7f..cade8f6 100644
--- a/src/main/java/de/ids_mannheim/korap/annotation/ResourceParser.java
+++ b/src/main/java/de/ids_mannheim/korap/annotation/ResourceParser.java
@@ -54,6 +54,10 @@
JsonNode node = mapper.readTree(is);
for (JsonNode resource : node) {
String resourceId = resource.at("/id").asText();
+ String requiredAccess = resource.at("/required_access").asText();
+ if (requiredAccess.isEmpty()){
+ requiredAccess = "free";
+ }
// log.debug(resourceId);
Set<AnnotationLayer> layers = parseLayers(resource.at("/layers"));
try {
@@ -66,7 +70,8 @@
resource.at("/en_description").asText(),
layers,
resource.at("/institution").asText(),
- resource.at("/corpus_query").asText());
+ resource.at("/corpus_query").asText(),
+ requiredAccess);
}
else {
resourceDao.updateResource(r,
@@ -76,7 +81,8 @@
resource.at("/en_description").asText(),
layers,
resource.at("/institution").asText(),
- resource.at("/corpus_query").asText());
+ resource.at("/corpus_query").asText(),
+ requiredAccess);
}
}
catch (Exception e) {
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 94dd5b2..e859843 100644
--- a/src/main/java/de/ids_mannheim/korap/dao/ResourceDao.java
+++ b/src/main/java/de/ids_mannheim/korap/dao/ResourceDao.java
@@ -70,23 +70,24 @@
public void createResource (String id, String pid, String germanTitle,
String englishTitle, String englishDescription,
Set<AnnotationLayer> layers, String institution,
- String corpusQuery) throws KustvaktException {
+ String corpusQuery, String requiredAccess)
+ throws KustvaktException {
ParameterChecker.checkStringValue(id, "id");
ParameterChecker.checkStringValue(englishTitle, "en_title");
ParameterChecker.checkStringValue(germanTitle, "de_title");
- Resource r = new Resource(id, pid, germanTitle, englishTitle,
- englishDescription, layers, institution, corpusQuery);
- entityManager.persist(r);
-
+ Resource r = new Resource(id, pid, germanTitle, englishTitle,
+ englishDescription, layers, institution, corpusQuery,
+ requiredAccess);
+ entityManager.persist(r);
}
@Transactional
public void updateResource (Resource r, String pid, String germanTitle,
- String englishTitle, String englishDescription,
- Set<AnnotationLayer> layers, String institution,
- String corpusQuery) throws KustvaktException {
- ParameterChecker.checkObjectValue(layers, "layers");
+ String englishTitle, String englishDescription,
+ Set<AnnotationLayer> layers, String institution, String corpusQuery,
+ String requiredAccess) throws KustvaktException {
+ ParameterChecker.checkObjectValue(layers, "layers");
ParameterChecker.checkStringValue(englishTitle, "en_title");
ParameterChecker.checkStringValue(germanTitle, "de_title");
@@ -97,8 +98,8 @@
r.setInstitution(institution);
r.setLayers(layers);
r.setPid(pid);
+ r.setRequiredAccess(requiredAccess);
entityManager.merge(r);
-
}
}
diff --git a/src/main/java/de/ids_mannheim/korap/dto/ResourceDto.java b/src/main/java/de/ids_mannheim/korap/dto/ResourceDto.java
index 063861e..d555307 100644
--- a/src/main/java/de/ids_mannheim/korap/dto/ResourceDto.java
+++ b/src/main/java/de/ids_mannheim/korap/dto/ResourceDto.java
@@ -16,19 +16,21 @@
@Getter
public class ResourceDto {
- private String resourceId;
- private Map<String, String> titles;
- private String description;
- private String[] languages;
- private Map<Integer, String> layers;
- private String institution;
- private String landingPage;
+ private String resourceId;
+ private Map<String, String> titles;
+ private String description;
+ private String[] languages;
+ private Map<Integer, String> layers;
+ private String institution;
+ private String landingPage;
+ private String requiredAccess;
- @Override
- public String toString () {
- return "resourceId= " + resourceId + ", description= " + description
- + ", titles= " + titles + ", languages= " + languages
- + ", layers= " + layers + ", institution=" + institution
- + ", landingPage=" + landingPage;
- }
+ @Override
+ public String toString () {
+ return "resourceId= " + resourceId + ", description= " + description
+ + ", titles= " + titles + ", languages= " + languages
+ + ", layers= " + layers + ", institution=" + institution
+ + ", landingPage=" + landingPage + ",requiredAccess="
+ + requiredAccess;
+ }
}
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 efbc619..735a0fd 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
@@ -58,6 +58,7 @@
dto.setLandingPage("https://korap.ids-mannheim.de?cq=" +
r.getCorpusQuery());
dto.setInstitution(r.getInstitution());
+ dto.setRequiredAccess(r.getRequiredAccess());
resourceDtoList.add(dto);
}
diff --git a/src/main/java/de/ids_mannheim/korap/entity/Resource.java b/src/main/java/de/ids_mannheim/korap/entity/Resource.java
index 98c7fa5..c83aa50 100644
--- a/src/main/java/de/ids_mannheim/korap/entity/Resource.java
+++ b/src/main/java/de/ids_mannheim/korap/entity/Resource.java
@@ -47,6 +47,10 @@
@Column(name = "corpus_query")
private String corpusQuery;
+ // default free
+ @Column(name = "required_access")
+ private String requiredAccess;
+
private String institution;
// required
@@ -59,7 +63,7 @@
public Resource (String id, String pid, String germanTitle,
String englishTitle, String englishDescription,
Set<AnnotationLayer> layers, String institution,
- String corpusQuery) {
+ String corpusQuery, String requiredAccess) {
this.id = id;
this.pid = pid;
this.germanTitle = germanTitle;
@@ -67,6 +71,7 @@
this.englishDescription = englishDescription;
this.layers = layers;
this.corpusQuery = corpusQuery;
+ this.requiredAccess = requiredAccess;
this.institution=institution;
}
@@ -75,7 +80,8 @@
return "id=" + id + "pid=" + pid + ", germanTitle=" + germanTitle
+ ", englishTitle=" + englishTitle + ", description="
+ englishDescription + ", layers= " + layers + ", institution="
- + institution + ", corpusQuery=" + corpusQuery;
+ + institution + ", corpusQuery=" + corpusQuery
+ +", requiredAccess="+ requiredAccess;
}
}
diff --git a/src/main/resources/data/resources.json b/src/main/resources/data/resources.json
index 10320f2..77a5028 100644
--- a/src/main/resources/data/resources.json
+++ b/src/main/resources/data/resources.json
@@ -13,6 +13,7 @@
"tt/p"
],
"corpus_query":"corpusSigle=WPD17",
+ "required_access" : "free",
"institution" : "IDS Mannheim"
},
{
@@ -30,6 +31,7 @@
"tt/p"
],
"corpus_query":"corpusSigle=WDD17",
+ "required_access" : "free",
"institution" : "IDS Mannheim"
},
{
diff --git a/src/main/resources/db/sqlite/V4.3__resource_access.sql b/src/main/resources/db/sqlite/V4.3__resource_access.sql
new file mode 100644
index 0000000..9a8898d
--- /dev/null
+++ b/src/main/resources/db/sqlite/V4.3__resource_access.sql
@@ -0,0 +1,2 @@
+ALTER TABLE resource
+ADD COLUMN required_access VARCHAR(25) DEFAULT FREE;
\ No newline at end of file
diff --git a/src/test/java/de/ids_mannheim/korap/web/controller/FreeResourceControllerTest.java b/src/test/java/de/ids_mannheim/korap/web/controller/ResourceControllerTest.java
similarity index 91%
rename from src/test/java/de/ids_mannheim/korap/web/controller/FreeResourceControllerTest.java
rename to src/test/java/de/ids_mannheim/korap/web/controller/ResourceControllerTest.java
index 719a96c..6322ede 100644
--- a/src/test/java/de/ids_mannheim/korap/web/controller/FreeResourceControllerTest.java
+++ b/src/test/java/de/ids_mannheim/korap/web/controller/ResourceControllerTest.java
@@ -12,7 +12,7 @@
import de.ids_mannheim.korap.utils.JsonUtils;
@ContextConfiguration("classpath:test-resource-config.xml")
-public class FreeResourceControllerTest extends SpringJerseyTest {
+public class ResourceControllerTest extends SpringJerseyTest {
@Test
public void testResource () throws KustvaktException {
@@ -34,5 +34,6 @@
assertEquals("IDS Mannheim", n.at("/institution").asText());
assertEquals("https://korap.ids-mannheim.de?cq=corpusSigle=WPD17",
n.at("/landingPage").asText());
+ assertEquals("free", n.at("/requiredAccess").asText());
}
}