use of org.orcid.core.exception.InvalidPutCodeException in project ORCID-Source by ORCID.
the class ActivityValidator method validateEducation.
public void validateEducation(Education education, SourceEntity sourceEntity, boolean createFlag, boolean isApiRequest, Visibility originalVisibility) {
if (education.getPutCode() != null && createFlag) {
Map<String, String> params = new HashMap<String, String>();
if (sourceEntity != null) {
params.put("clientName", sourceEntity.getSourceName());
}
throw new InvalidPutCodeException(params);
}
// Check that we are not changing the visibility
if (isApiRequest && !createFlag) {
Visibility updatedVisibility = education.getVisibility();
validateVisibilityDoesntChange(updatedVisibility, originalVisibility);
}
}
use of org.orcid.core.exception.InvalidPutCodeException in project ORCID-Source by ORCID.
the class ActivityValidator method validateGroupIdRecord.
public void validateGroupIdRecord(GroupIdRecord groupIdRecord, boolean createFlag, SourceEntity sourceEntity) {
if (createFlag) {
if (groupIdRecord.getPutCode() != null) {
Map<String, String> params = new HashMap<String, String>();
if (sourceEntity != null) {
params.put("clientName", sourceEntity.getSourceName());
}
throw new InvalidPutCodeException(params);
}
}
Pattern validGroupIdRegexPattern = Pattern.compile("(ringgold:|issn:|orcid-generated:|fundref:|publons:)([0-9a-zA-Z\\^._~:/?#\\[\\]@!$&'()*+,;=-]){2,}");
Matcher matcher = validGroupIdRegexPattern.matcher(groupIdRecord.getGroupId());
if (!matcher.matches()) {
throw new OrcidValidationException("Invalid group-id: '" + groupIdRecord.getGroupId() + "'");
}
}
use of org.orcid.core.exception.InvalidPutCodeException in project ORCID-Source by ORCID.
the class GroupIdRecordManagerTest method testCreateUpdateGetDeleteGroupIdRecord.
@Test
public void testCreateUpdateGetDeleteGroupIdRecord() {
GroupIdRecord g1 = new GroupIdRecord();
g1.setDescription("Description");
g1.setGroupId("orcid-generated:valid-group-id");
g1.setName("Group # " + System.currentTimeMillis());
g1.setType("publisher");
// Test create
g1 = groupIdRecordManager.createGroupIdRecord(g1);
Long putCode = g1.getPutCode();
assertNotNull(putCode);
assertNotNull(g1.getSource());
assertNotNull(g1.getSource().getSourceClientId());
assertEquals(CLIENT_ID, g1.getSource().getSourceClientId().getPath());
// Test find
assertTrue(groupIdRecordManager.exists(g1.getGroupId()));
Optional<GroupIdRecord> existingByGroupId = groupIdRecordManager.findByGroupId(g1.getGroupId());
assertTrue(existingByGroupId.isPresent());
assertNotNull(existingByGroupId.get().getPutCode());
assertEquals(putCode, existingByGroupId.get().getPutCode());
assertEquals(g1.getGroupId(), existingByGroupId.get().getGroupId());
assertNotNull(existingByGroupId.get().getSource());
assertNotNull(existingByGroupId.get().getSource().getSourceClientId());
assertEquals(CLIENT_ID, existingByGroupId.get().getSource().getSourceClientId().getPath());
GroupIdRecord existingByPutCode = groupIdRecordManager.getGroupIdRecord(g1.getPutCode());
assertNotNull(existingByPutCode);
assertNotNull(existingByPutCode.getPutCode());
assertEquals(putCode, existingByPutCode.getPutCode());
assertEquals(g1.getGroupId(), existingByPutCode.getGroupId());
assertNotNull(existingByPutCode.getSource());
assertNotNull(existingByPutCode.getSource().getSourceClientId());
assertEquals(CLIENT_ID, existingByPutCode.getSource().getSourceClientId().getPath());
// Test update with invalid value
try {
g1.setGroupId("invalid-group-id");
groupIdRecordManager.updateGroupIdRecord(g1.getPutCode(), g1);
fail();
} catch (OrcidValidationException e) {
assertEquals("Invalid group-id: '" + g1.getGroupId() + "'", e.getMessage());
} catch (Exception e) {
fail();
}
// Test update with valid value
try {
g1.setGroupId("orcid-generated:other-valid-group-id");
g1 = groupIdRecordManager.updateGroupIdRecord(g1.getPutCode(), g1);
assertNotNull(g1);
assertEquals("orcid-generated:other-valid-group-id", g1.getGroupId());
} catch (Exception e) {
fail();
}
// Test create with put code
try {
g1.setGroupId("orcid-generated:valid-group-id");
groupIdRecordManager.createGroupIdRecord(g1);
fail();
} catch (InvalidPutCodeException e) {
} catch (Exception e) {
fail();
}
// Test create with invalid group id
try {
g1.setPutCode(null);
g1.setGroupId("other-invalid-group-id");
groupIdRecordManager.createGroupIdRecord(g1);
fail();
} catch (OrcidValidationException e) {
assertEquals("Invalid group-id: '" + g1.getGroupId() + "'", e.getMessage());
} catch (Exception e) {
fail();
}
// Test delete
groupIdRecordManager.deleteGroupIdRecord(putCode);
try {
groupIdRecordManager.deleteGroupIdRecord(Long.valueOf(-1L));
} catch (GroupIdRecordNotFoundException e) {
} catch (Exception e) {
fail();
}
}
use of org.orcid.core.exception.InvalidPutCodeException in project ORCID-Source by ORCID.
the class ActivityValidator method validateAffiliation.
public void validateAffiliation(Affiliation affiliation, SourceEntity sourceEntity, boolean createFlag, boolean isApiRequest, Visibility originalVisibility) {
if (affiliation.getPutCode() != null && createFlag) {
Map<String, String> params = new HashMap<String, String>();
if (sourceEntity != null) {
params.put("clientName", sourceEntity.getSourceName());
}
throw new InvalidPutCodeException(params);
}
// Check that we are not changing the visibility
if (isApiRequest && !createFlag) {
Visibility updatedVisibility = affiliation.getVisibility();
validateVisibilityDoesntChange(updatedVisibility, originalVisibility);
}
if (affiliation.getStartDate() == null) {
throw new OrcidValidationException("Education start date is required");
}
if (isApiRequest) {
validateDisambiguatedOrg(affiliation);
}
}
use of org.orcid.core.exception.InvalidPutCodeException in project ORCID-Source by ORCID.
the class ActivityValidator method validateGroupIdRecord.
public void validateGroupIdRecord(GroupIdRecord groupIdRecord, boolean createFlag, SourceEntity sourceEntity) {
if (createFlag) {
if (groupIdRecord.getPutCode() != null) {
Map<String, String> params = new HashMap<String, String>();
if (sourceEntity != null) {
params.put("clientName", sourceEntity.getSourceName());
}
throw new InvalidPutCodeException(params);
}
}
Pattern validGroupIdRegexPattern = Pattern.compile("(ringgold:|issn:|orcid-generated:|fundref:|publons:)([0-9a-zA-Z\\^._~:/?#\\[\\]@!$&'()*+,;=-]){2,}");
Matcher matcher = validGroupIdRegexPattern.matcher(groupIdRecord.getGroupId());
if (!matcher.matches()) {
throw new OrcidValidationException("Invalid group-id: '" + groupIdRecord.getGroupId() + "'");
}
}
Aggregations