use of org.orcid.jaxb.model.v3.dev1.record.PersonExternalIdentifiers in project ORCID-Source by ORCID.
the class OrcidSecurityManager_PersonTest method testPerson_When_AllPrivate_Source_ReadPublicToken.
@Test
public void testPerson_When_AllPrivate_Source_ReadPublicToken() {
SecurityContextTestUtils.setUpSecurityContext(ORCID_1, CLIENT_1, ScopePathType.READ_PUBLIC);
Name name = createName(Visibility.PRIVATE);
Biography bio = createBiography(Visibility.PRIVATE);
Address a1 = createAddress(Visibility.PRIVATE, CLIENT_1);
Address a2 = createAddress(Visibility.PRIVATE, CLIENT_1);
Address a3 = createAddress(Visibility.PRIVATE, CLIENT_1);
Addresses addresses = new Addresses();
addresses.setAddress(new ArrayList<Address>(Arrays.asList(a1, a2, a3)));
Email e1 = createEmail(Visibility.PRIVATE, CLIENT_1);
Email e2 = createEmail(Visibility.PRIVATE, CLIENT_1);
Email e3 = createEmail(Visibility.PRIVATE, CLIENT_1);
Emails emails = new Emails();
emails.setEmails(new ArrayList<Email>(Arrays.asList(e1, e2, e3)));
Keyword k1 = createKeyword(Visibility.PRIVATE, CLIENT_1);
Keyword k2 = createKeyword(Visibility.PRIVATE, CLIENT_1);
Keyword k3 = createKeyword(Visibility.PRIVATE, CLIENT_1);
Keywords keywords = new Keywords();
keywords.setKeywords(new ArrayList<Keyword>(Arrays.asList(k1, k2, k3)));
OtherName o1 = createOtherName(Visibility.PRIVATE, CLIENT_1);
OtherName o2 = createOtherName(Visibility.PRIVATE, CLIENT_1);
OtherName o3 = createOtherName(Visibility.PRIVATE, CLIENT_1);
OtherNames otherNames = new OtherNames();
otherNames.setOtherNames(new ArrayList<OtherName>(Arrays.asList(o1, o2, o3)));
PersonExternalIdentifier ext1 = createPersonExternalIdentifier(Visibility.PRIVATE, CLIENT_1);
PersonExternalIdentifier ext2 = createPersonExternalIdentifier(Visibility.PRIVATE, CLIENT_1);
PersonExternalIdentifier ext3 = createPersonExternalIdentifier(Visibility.PRIVATE, CLIENT_1);
PersonExternalIdentifiers extIds = new PersonExternalIdentifiers();
extIds.setExternalIdentifiers(new ArrayList<PersonExternalIdentifier>(Arrays.asList(ext1, ext2, ext3)));
ResearcherUrl r1 = createResearcherUrl(Visibility.PRIVATE, CLIENT_1);
ResearcherUrl r2 = createResearcherUrl(Visibility.PRIVATE, CLIENT_1);
ResearcherUrl r3 = createResearcherUrl(Visibility.PRIVATE, CLIENT_1);
ResearcherUrls researcherUrls = new ResearcherUrls();
researcherUrls.setResearcherUrls(new ArrayList<ResearcherUrl>(Arrays.asList(r1, r2, r3)));
Person p = new Person();
p.setBiography(bio);
p.setName(name);
p.setAddresses(addresses);
p.setEmails(emails);
p.setExternalIdentifiers(extIds);
p.setKeywords(keywords);
p.setOtherNames(otherNames);
p.setResearcherUrls(researcherUrls);
orcidSecurityManager.checkAndFilter(ORCID_1, p);
assertNotNull(p);
assertNull(p.getName());
assertNull(p.getBiography());
// Check addresses
assertEquals(3, p.getAddresses().getAddress().size());
assertTrue(p.getAddresses().getAddress().contains(a1));
assertTrue(p.getAddresses().getAddress().contains(a2));
assertTrue(p.getAddresses().getAddress().contains(a3));
// Check emails
assertEquals(3, p.getEmails().getEmails().size());
assertTrue(p.getEmails().getEmails().contains(e1));
assertTrue(p.getEmails().getEmails().contains(e2));
assertTrue(p.getEmails().getEmails().contains(e3));
// Check ext ids
assertEquals(3, p.getExternalIdentifiers().getExternalIdentifiers().size());
assertTrue(p.getExternalIdentifiers().getExternalIdentifiers().contains(ext1));
assertTrue(p.getExternalIdentifiers().getExternalIdentifiers().contains(ext2));
assertTrue(p.getExternalIdentifiers().getExternalIdentifiers().contains(ext3));
// Check keywords
assertEquals(3, p.getKeywords().getKeywords().size());
assertTrue(p.getKeywords().getKeywords().contains(k1));
assertTrue(p.getKeywords().getKeywords().contains(k2));
assertTrue(p.getKeywords().getKeywords().contains(k3));
// Check other names
assertEquals(3, p.getOtherNames().getOtherNames().size());
assertTrue(p.getOtherNames().getOtherNames().contains(o1));
assertTrue(p.getOtherNames().getOtherNames().contains(o2));
assertTrue(p.getOtherNames().getOtherNames().contains(o3));
// Check researcher urls
assertEquals(3, p.getResearcherUrls().getResearcherUrls().size());
assertTrue(p.getResearcherUrls().getResearcherUrls().contains(r1));
assertTrue(p.getResearcherUrls().getResearcherUrls().contains(r2));
assertTrue(p.getResearcherUrls().getResearcherUrls().contains(r3));
}
use of org.orcid.jaxb.model.v3.dev1.record.PersonExternalIdentifiers in project ORCID-Source by ORCID.
the class ExternalIdentifierManagerTest method getPublicTest.
@Test
public void getPublicTest() {
String orcid = "0000-0000-0000-0003";
PersonExternalIdentifiers elements = externalIdentifierManager.getPublicExternalIdentifiers(orcid);
assertNotNull(elements);
assertNotNull(elements.getExternalIdentifiers());
assertEquals(1, elements.getExternalIdentifiers().size());
assertEquals(Long.valueOf(13), elements.getExternalIdentifiers().get(0).getPutCode());
}
use of org.orcid.jaxb.model.v3.dev1.record.PersonExternalIdentifiers in project ORCID-Source by ORCID.
the class ExternalIdentifierManagerImpl method updateExternalIdentifiers.
@Override
public PersonExternalIdentifiers updateExternalIdentifiers(String orcid, PersonExternalIdentifiers externalIdentifiers) {
List<ExternalIdentifierEntity> existingExternalIdentifiersList = externalIdentifierDao.getExternalIdentifiers(orcid, getLastModified(orcid));
// Delete the deleted ones
for (ExternalIdentifierEntity existing : existingExternalIdentifiersList) {
boolean deleteMe = true;
if (externalIdentifiers.getExternalIdentifiers() != null) {
for (PersonExternalIdentifier updatedOrNew : externalIdentifiers.getExternalIdentifiers()) {
if (existing.getId().equals(updatedOrNew.getPutCode())) {
deleteMe = false;
break;
}
}
}
if (deleteMe) {
try {
externalIdentifierDao.removeExternalIdentifier(orcid, existing.getId());
} catch (Exception e) {
throw new ApplicationException("Unable to delete external identifier " + existing.getId(), e);
}
}
}
if (externalIdentifiers != null && externalIdentifiers.getExternalIdentifiers() != null) {
for (PersonExternalIdentifier updatedOrNew : externalIdentifiers.getExternalIdentifiers()) {
if (updatedOrNew.getPutCode() != null) {
// Update the existing ones
for (ExternalIdentifierEntity existingExtId : existingExternalIdentifiersList) {
if (existingExtId.getId().equals(updatedOrNew.getPutCode())) {
existingExtId.setLastModified(new Date());
existingExtId.setVisibility(org.orcid.jaxb.model.common_v2.Visibility.fromValue(updatedOrNew.getVisibility().value()));
existingExtId.setDisplayIndex(updatedOrNew.getDisplayIndex());
externalIdentifierDao.merge(existingExtId);
}
}
}
}
}
return externalIdentifiers;
}
use of org.orcid.jaxb.model.v3.dev1.record.PersonExternalIdentifiers in project ORCID-Source by ORCID.
the class ValidateV3_dev1SamplesTest method testUnmarshallExternalIdentifiers.
@Test
public void testUnmarshallExternalIdentifiers() throws SAXException, URISyntaxException {
PersonExternalIdentifiers externalIdentifiers = (PersonExternalIdentifiers) unmarshallFromPath("/record_3.0_dev1/samples/read_samples/external-identifiers-3.0_dev1.xml", PersonExternalIdentifiers.class, "/record_3.0_dev1/person-external-identifier-3.0_dev1.xsd");
assertNotNull(externalIdentifiers);
assertNotNull(externalIdentifiers.getExternalIdentifiers());
assertEquals(2, externalIdentifiers.getExternalIdentifiers().size());
for (PersonExternalIdentifier extId : externalIdentifiers.getExternalIdentifiers()) {
assertThat(extId.getPutCode(), anyOf(is(1L), is(2L)));
assertThat(extId.getType(), anyOf(is("common-name-1"), is("common-name-2")));
assertThat(extId.getValue(), anyOf(is("id-reference-1"), is("id-reference-2")));
assertNotNull(extId.getUrl());
assertThat(extId.getUrl().getValue(), anyOf(is("http://url/1"), is("http://url/2")));
assertNotNull(extId.getCreatedDate());
assertNotNull(extId.getLastModifiedDate());
assertNotNull(extId.getSource());
assertEquals("8888-8888-8888-8880", extId.getSource().retrieveSourcePath());
}
PersonExternalIdentifier extId = (PersonExternalIdentifier) unmarshallFromPath("/record_3.0_dev1/samples/read_samples/external-identifier-3.0_dev1.xml", PersonExternalIdentifier.class);
assertNotNull(extId);
assertEquals("A-0003", extId.getType());
assertEquals(Long.valueOf(1), extId.getPutCode());
assertEquals("A-0003", extId.getValue());
assertNotNull(extId.getUrl());
assertEquals("http://ext-id/A-0003", extId.getUrl().getValue());
assertEquals(Visibility.PUBLIC.value(), extId.getVisibility().value());
assertNotNull(extId.getCreatedDate());
assertNotNull(extId.getLastModifiedDate());
assertNotNull(extId.getSource());
assertEquals("8888-8888-8888-8880", extId.getSource().retrieveSourcePath());
}
use of org.orcid.jaxb.model.v3.dev1.record.PersonExternalIdentifiers in project ORCID-Source by ORCID.
the class PublicV3ApiServiceDelegatorImpl method viewExternalIdentifiers.
@Override
public Response viewExternalIdentifiers(String orcid) {
PersonExternalIdentifiers extIds = externalIdentifierManagerReadOnly.getPublicExternalIdentifiers(orcid);
publicAPISecurityManagerV3.filter(extIds);
ElementUtils.setPathToExternalIdentifiers(extIds, orcid);
Api3_0_Dev1LastModifiedDatesHelper.calculateLastModified(extIds);
sourceUtilsReadOnly.setSourceName(extIds);
return Response.ok(extIds).build();
}
Aggregations