Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision

Target

Select target project
  • aou/aou-backend
1 result
Select Git revision
Show changes
Commits on Source (2)
Showing
with 56 additions and 22 deletions
......@@ -77,12 +77,16 @@ public class BibliographyController {
public HttpEntity<String> getJavascript(
@RequestParam(name = "searches", required = false) String commaSeparatedSearchIds,
@RequestParam(name = "publicationIds", required = false) String commaSeparatedPublicationIds,
@RequestParam(name = "contributor", required = false) String cnIndividu,
@RequestParam(name = "combinationType", required = false, defaultValue = "or") String combinationType,
@RequestParam(required = false) Map<String, Object> queryParameters
) {
if (StringTool.isNullOrEmpty(commaSeparatedSearchIds) && StringTool.isNullOrEmpty(commaSeparatedPublicationIds)) {
throw new SolidifyHttpErrorException(HttpStatus.BAD_REQUEST, "At least one search id or one publication id is required");
if (StringTool.isNullOrEmpty(commaSeparatedSearchIds)
&& StringTool.isNullOrEmpty(commaSeparatedPublicationIds)
&& StringTool.isNullOrEmpty(cnIndividu)) {
throw new SolidifyHttpErrorException(HttpStatus.BAD_REQUEST,
"At least one search id, one publication id or a contributor cnIndividu is required");
}
List<String> searchIds = new ArrayList<>();
......@@ -95,7 +99,7 @@ public class BibliographyController {
publicationIds.addAll(Arrays.stream(commaSeparatedPublicationIds.split(",")).map(String::trim).collect(Collectors.toList()));
}
String javascript = this.bibliographyService.buildJavascript(searchIds, publicationIds, queryParameters, combinationType);
String javascript = this.bibliographyService.buildJavascript(searchIds, publicationIds, cnIndividu, queryParameters, combinationType);
final HttpHeaders headers = new HttpHeaders();
headers.set(HttpHeaders.CONTENT_TYPE, "text/javascript");
......
......@@ -210,12 +210,16 @@ public class SearchController extends IndexDataReadOnlyController<String, Public
public HttpEntity<RestCollection<PublicationIndexEntry>> combineStoredResearches(
@RequestParam(name = "searches", required = false) String commaSeparatedSearchIds,
@RequestParam(name = "publicationIds", required = false) String commaSeparatedPublicationIds,
@RequestParam(name = "contributor", required = false) String cnIndividu,
@RequestParam(name = "combinationType", required = false, defaultValue = "or") String combinationType,
@RequestParam(value = WITH_RESTRICTED_ACCESS_MASTERS_PARAM, defaultValue = "false") boolean withRestrictedAccessMaster,
Pageable pageable) {
if (StringTool.isNullOrEmpty(commaSeparatedSearchIds) && StringTool.isNullOrEmpty(commaSeparatedPublicationIds)) {
throw new SolidifyHttpErrorException(HttpStatus.BAD_REQUEST, "At least one search id or one publication id is required");
if (StringTool.isNullOrEmpty(commaSeparatedSearchIds)
&& StringTool.isNullOrEmpty(commaSeparatedPublicationIds)
&& StringTool.isNullOrEmpty(cnIndividu)) {
throw new SolidifyHttpErrorException(HttpStatus.BAD_REQUEST,
"At least one search id, one publication id or a contributor cnIndividu is required");
}
List<String> searchIds = new ArrayList<>();
......@@ -228,7 +232,7 @@ public class SearchController extends IndexDataReadOnlyController<String, Public
publicationIds.addAll(Arrays.stream(commaSeparatedPublicationIds.split(",")).map(String::trim).collect(Collectors.toList()));
}
AouSearchCondition searchCondition = this.queryBuilderService.getSearchesOrPublicationsSearchCondition(searchIds, publicationIds,
AouSearchCondition searchCondition = this.queryBuilderService.getSearchesOrPublicationsSearchCondition(searchIds, publicationIds, cnIndividu,
combinationType);
return this.searchPost(List.of(searchCondition), withRestrictedAccessMaster, pageable);
......
......@@ -157,8 +157,9 @@ public class BibliographyGeneratorService {
}
}
public String buildJavascript(List<String> searchIds, List<String> publicationIds, Map<String, Object> parameters, String combinationType) {
AouSearchCondition searchCondition = this.queryBuilderService.getSearchesOrPublicationsSearchCondition(searchIds, publicationIds,
public String buildJavascript(List<String> searchIds, List<String> publicationIds, String cnIndividu, Map<String, Object> parameters,
String combinationType) {
AouSearchCondition searchCondition = this.queryBuilderService.getSearchesOrPublicationsSearchCondition(searchIds, publicationIds, cnIndividu,
combinationType);
List<AouSearchCondition> searchConditions = new ArrayList<>();
searchConditions.add(searchCondition);
......
......@@ -206,7 +206,7 @@ public class QueryBuilderService {
return discardCondition;
}
public AouSearchCondition getSearchesOrPublicationsSearchCondition(List<String> searchIds, List<String> publicationIds,
public AouSearchCondition getSearchesOrPublicationsSearchCondition(List<String> searchIds, List<String> publicationIds, String cnIndividu,
String combinationType) {
List<AouSearchCondition> nestedSearchConditions = new ArrayList<>();
......@@ -232,6 +232,15 @@ public class QueryBuilderService {
nestedSearchConditions.add(aouSearchCondition);
}
if (!StringTool.isNullOrEmpty(cnIndividu)) {
AouSearchCondition aouSearchCondition = new AouSearchCondition();
aouSearchCondition.setType(SearchConditionType.TERM);
aouSearchCondition.setBooleanClauseType(booleanClauseType);
aouSearchCondition.setField(AouConstants.INDEX_FIELD_ALIAS_CN_INDIVIDU);
aouSearchCondition.setValue(cnIndividu);
nestedSearchConditions.add(aouSearchCondition);
}
// Combined conditions are returned in single container condition in order to be able to combine it with other ones (such a years condition
// when exporting bibliography).
AouSearchCondition mustCondition = new AouSearchCondition();
......@@ -249,7 +258,7 @@ public class QueryBuilderService {
if (this.hasParameter(parameters, "cnIndividu")) {
AouSearchCondition cnIndividuCondition = new AouSearchCondition();
cnIndividuCondition.setType(SearchConditionType.TERM);
cnIndividuCondition.setField("cnIndividu");
cnIndividuCondition.setField(AouConstants.INDEX_FIELD_ALIAS_CN_INDIVIDU);
cnIndividuCondition.setValue(parameters.get("cnIndividu").toString());
searchConditions.add(cnIndividuCondition);
}
......
......@@ -9,12 +9,12 @@
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation, either version 2 of the
* License, or (at your option) any later version.
*
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*
* You should have received a copy of the GNU General Public
* License along with this program. If not, see
* <http://www.gnu.org/licenses/gpl-2.0.html>.
......@@ -229,7 +229,7 @@ public class GoogleIsbnImportService extends MetadataImportService {
String value = this.getStringOrNull(doc, property);
if (!StringTool.isNullOrEmpty(value)) {
this.ensureLanguagesExist(depositDoc);
depositDoc.getLanguages().getLanguage().add(value);
depositDoc.getLanguages().getLanguage().add(this.getLanguageCode(value));
}
}
......
......@@ -233,36 +233,50 @@ public abstract class MetadataImportService extends AouService {
switch (code) {
case "fr":
case "fra":
case "fre":
return "fre";
case "en":
case "eng":
return "eng";
case "de":
case "deu":
case "ger":
return "ger";
case "ar":
case "ara":
return "ara";
case "zh":
case "zho":
case "chi":
return "chi";
case "es":
case "spa":
return "spa";
case "el":
case "ell":
case "gre":
return "gre";
case "it":
case "ita":
return "ita";
case "ja":
case "jpn":
return "jpn";
case "nl":
case "nld":
case "dut":
return "dut";
case "pt":
case "por":
return "por";
case "rm":
case "roh":
return "roh";
case "ru":
case "rus":
return "rus";
case "tr":
case "tur":
return "tur";
default:
return "mis";
......
......@@ -424,9 +424,10 @@ public class PmidImportService extends MetadataImportService {
String value = XMLTool.getFirstTextContent(crossrefDoc, xpathQuery);
if (!StringTool.isNullOrEmpty(value)) {
this.ensureLanguagesExist(depositDoc);
depositDoc.getLanguages().getLanguage().add(value);
String languageCode = this.getLanguageCode(value);
depositDoc.getLanguages().getLanguage().add(languageCode);
if (depositDoc.getTitle() != null) {
depositDoc.getTitle().setLang(value);
depositDoc.getTitle().setLang(languageCode);
}
}
}
......
......@@ -182,10 +182,10 @@ public class SwisscoveryImportService extends MetadataImportService {
//Language are in the characters at position 35-37
String language = value.substring(35, 38);
this.ensureLanguagesExist(depositDoc);
//No need to convert language code : https://www.loc.gov/marc/languages/language_name.html
depositDoc.getLanguages().getLanguage().add(language);
String languageCode = this.getLanguageCode(language);
depositDoc.getLanguages().getLanguage().add(languageCode);
if (depositDoc.getTitle() != null) {
depositDoc.getTitle().setLang(language);
depositDoc.getTitle().setLang(languageCode);
}
}
}
......
......@@ -9,12 +9,12 @@
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation, either version 2 of the
* License, or (at your option) any later version.
*
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*
* You should have received a copy of the GNU General Public
* License along with this program. If not, see
* <http://www.gnu.org/licenses/gpl-2.0.html>.
......@@ -117,7 +117,7 @@ public class GoogleIsbnImportServiceTest {
assertEquals(ISBN_ABSTRACT, depositDoc.getAbstracts().getAbstract().get(0).getContent());
assertEquals(AouConstants.DEPOSIT_TYPE_LIVRE_NAME, depositDoc.getType());
assertEquals(1, depositDoc.getLanguages().getLanguage().size());
assertEquals("en", depositDoc.getLanguages().getLanguage().get(0));
assertEquals("eng", depositDoc.getLanguages().getLanguage().get(0));
}
......
......@@ -405,6 +405,7 @@ public class AouConstants {
public static final String INDEX_FIELD_CONTRIBUTORS = "contributors";
public static final String INDEX_FIELD_CONTRIBUTORS_CN_INDIVIDU = "contributors.cnIndividu";
public static final String INDEX_FIELD_EMBARGO_END_DATES = "embargoEndDates";
public static final String INDEX_FIELD_HTML_META_HEADERS = "htmlMetaHeaders";
public static final String INDEX_FIELD_ALIAS_UNIGE_DIRECTORS = "unigeDirector";
public static final String INDEX_FIELD_ALIAS_GLOBAL_SEARCH = "globalSearch";
......@@ -412,7 +413,7 @@ public class AouConstants {
public static final String INDEX_FIELD_ALIAS_PUBLISHED_IN = "publishedIn";
public static final String INDEX_FIELD_ALIAS_TITLE = "title";
public static final String INDEX_FIELD_ALIAS_ABSTRACT = "abstract";
public static final String INDEX_FIELD_HTML_META_HEADERS = "htmlMetaHeaders";
public static final String INDEX_FIELD_ALIAS_CN_INDIVIDU = "cnIndividu";
// Schema
public static final String XSL_HOME = "xslt";
......