Set corpus access public for stored query.
Change-Id: If58c392919e84aab26c7781fe42a5e6b05759968
diff --git a/full/src/main/java/de/ids_mannheim/korap/config/NamedVCLoader.java b/full/src/main/java/de/ids_mannheim/korap/config/NamedVCLoader.java
index 1d5f2e5..115405e 100644
--- a/full/src/main/java/de/ids_mannheim/korap/config/NamedVCLoader.java
+++ b/full/src/main/java/de/ids_mannheim/korap/config/NamedVCLoader.java
@@ -60,7 +60,7 @@
String json = IOUtils.toString(is, "utf-8");
if (json != null) {
cacheVC(json, filename);
- vcService.storeVC(filename, ResourceType.SYSTEM,
+ vcService.storeQuery(filename, ResourceType.SYSTEM,
QueryType.VIRTUAL_CORPUS, json, null, null, null, true,
"system", null, null);
}
@@ -102,7 +102,7 @@
// ignore
if (DEBUG) jlog.debug(e);
}
- vcService.storeVC(filename, ResourceType.SYSTEM,
+ vcService.storeQuery(filename, ResourceType.SYSTEM,
QueryType.VIRTUAL_CORPUS, json, null, null, null, true,
"system", null, null);
}
diff --git a/full/src/main/java/de/ids_mannheim/korap/service/VirtualCorpusService.java b/full/src/main/java/de/ids_mannheim/korap/service/VirtualCorpusService.java
index 67d46d7..8d17105 100644
--- a/full/src/main/java/de/ids_mannheim/korap/service/VirtualCorpusService.java
+++ b/full/src/main/java/de/ids_mannheim/korap/service/VirtualCorpusService.java
@@ -62,7 +62,7 @@
public static boolean DEBUG = false;
- public static Pattern vcNamePattern = Pattern.compile("[-\\w.]+");
+ public static Pattern queryNamePattern = Pattern.compile("[-\\w.]+");
@Autowired
private VirtualCorpusDao vcDao;
@@ -243,17 +243,17 @@
// }
public Status handlePutRequest (String username, String vcCreator,
- String vcName, QueryJson vcJson) throws KustvaktException {
+ String vcName, QueryJson queryJson) throws KustvaktException {
verifyUsername(username, vcCreator);
VirtualCorpus vc = vcDao.retrieveVCByName(vcName, vcCreator);
- ParameterChecker.checkObjectValue(vcJson, "request entity");
+ ParameterChecker.checkObjectValue(queryJson, "request entity");
if (vc == null) {
- storeVC(vcJson, vcName, username);
+ storeQuery(queryJson, vcName, username);
return Status.CREATED;
}
else {
- editVC(vc, vcJson, vcName, username);
+ editVC(vc, queryJson, vcName, username);
return Status.NO_CONTENT;
}
}
@@ -322,38 +322,40 @@
}
}
- public void storeVC (QueryJson vc, String vcName, String createdBy)
+ public void storeQuery (QueryJson query, String queryName, String createdBy)
throws KustvaktException {
String koralQuery = null;
- if (vc.getQueryType().equals(QueryType.VIRTUAL_CORPUS)) {
- ParameterChecker.checkStringValue(vc.getCorpusQuery(),
+ if (query.getQueryType().equals(QueryType.VIRTUAL_CORPUS)) {
+ ParameterChecker.checkStringValue(query.getCorpusQuery(),
"corpusQuery");
- koralQuery = serializeCorpusQuery(vc.getCorpusQuery());
+ koralQuery = serializeCorpusQuery(query.getCorpusQuery());
}
- else if (vc.getQueryType().equals(QueryType.QUERY)) {
- ParameterChecker.checkStringValue(vc.getQuery(), "query");
- ParameterChecker.checkStringValue(vc.getQueryLanguage(),
+ else if (query.getQueryType().equals(QueryType.QUERY)) {
+ ParameterChecker.checkStringValue(query.getQuery(), "query");
+ ParameterChecker.checkStringValue(query.getQueryLanguage(),
"queryLanguage");
- koralQuery = serializeQuery(vc.getQuery(), vc.getQueryLanguage());
+ koralQuery =
+ serializeQuery(query.getQuery(), query.getQueryLanguage());
}
- storeVC(vcName, vc.getType(), vc.getQueryType(), koralQuery,
- vc.getDefinition(), vc.getDescription(), vc.getStatus(),
- vc.isCached(), createdBy, vc.getQuery(), vc.getQueryLanguage());
+ storeQuery(queryName, query.getType(), query.getQueryType(), koralQuery,
+ query.getDefinition(), query.getDescription(),
+ query.getStatus(), query.isCached(), createdBy,
+ query.getQuery(), query.getQueryLanguage());
}
- public void storeVC (String vcName, ResourceType type, QueryType queryType,
+ public void storeQuery (String queryName, ResourceType type, QueryType queryType,
String koralQuery, String definition, String description,
String status, boolean isCached, String username, String query,
String queryLanguage) throws KustvaktException {
- ParameterChecker.checkNameValue(vcName, "vcName");
+ ParameterChecker.checkNameValue(queryName, "name");
ParameterChecker.checkObjectValue(type, "type");
- if (!vcNamePattern.matcher(vcName).matches()) {
+ if (!queryNamePattern.matcher(queryName).matches()) {
throw new KustvaktException(StatusCodes.INVALID_ARGUMENT,
- "Virtual corpus name must only contain letters, numbers, "
- + "underscores, hypens and spaces",
- vcName);
+ queryType.displayName() + " name must only contain "
+ + "letters, numbers, underscores, hypens and spaces",
+ queryName);
}
if (type.equals(ResourceType.SYSTEM) && !username.equals("system")
@@ -362,13 +364,18 @@
"Unauthorized operation for user: " + username, username);
}
- CorpusAccess requiredAccess =
- determineRequiredAccess(isCached, vcName, koralQuery);
+ CorpusAccess requiredAccess = CorpusAccess.PUB;
+ if (queryType.equals(QueryType.VIRTUAL_CORPUS)) {
+ requiredAccess =
+ determineRequiredAccess(isCached, queryName, koralQuery);
+ }
- if (DEBUG) jlog.debug("Storing VC " + vcName + "in the database ");
- int vcId = 0;
+ if (DEBUG) jlog.debug("Storing virtul corpus or query: " + queryName
+ + "in the database ");
+
+ int queryId = 0;
try {
- vcId = vcDao.createVirtualCorpus(vcName, type, queryType,
+ queryId = vcDao.createVirtualCorpus(queryName, type, queryType,
requiredAccess, koralQuery, definition, description, status,
isCached, username, query, queryLanguage);
@@ -387,7 +394,7 @@
cause.getMessage());
}
if (type.equals(ResourceType.PUBLISHED)) {
- publishVC(vcId);
+ publishVC(queryId);
}
}