Search in sources :

Example 26 with PersonExternalIdentifiers

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));
}
Also used : Email(org.orcid.jaxb.model.v3.dev1.record.Email) Keywords(org.orcid.jaxb.model.v3.dev1.record.Keywords) Address(org.orcid.jaxb.model.v3.dev1.record.Address) Keyword(org.orcid.jaxb.model.v3.dev1.record.Keyword) OtherNames(org.orcid.jaxb.model.v3.dev1.record.OtherNames) OtherName(org.orcid.jaxb.model.v3.dev1.record.OtherName) PersonExternalIdentifier(org.orcid.jaxb.model.v3.dev1.record.PersonExternalIdentifier) OtherName(org.orcid.jaxb.model.v3.dev1.record.OtherName) Name(org.orcid.jaxb.model.v3.dev1.record.Name) Addresses(org.orcid.jaxb.model.v3.dev1.record.Addresses) PersonExternalIdentifiers(org.orcid.jaxb.model.v3.dev1.record.PersonExternalIdentifiers) Biography(org.orcid.jaxb.model.v3.dev1.record.Biography) ResearcherUrls(org.orcid.jaxb.model.v3.dev1.record.ResearcherUrls) ResearcherUrl(org.orcid.jaxb.model.v3.dev1.record.ResearcherUrl) Emails(org.orcid.jaxb.model.v3.dev1.record.Emails) Person(org.orcid.jaxb.model.v3.dev1.record.Person) Test(org.junit.Test)

Example 27 with PersonExternalIdentifiers

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());
}
Also used : PersonExternalIdentifiers(org.orcid.jaxb.model.v3.dev1.record.PersonExternalIdentifiers) Test(org.junit.Test) BaseTest(org.orcid.core.BaseTest)

Example 28 with PersonExternalIdentifiers

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;
}
Also used : ApplicationException(org.orcid.core.exception.ApplicationException) ExternalIdentifierEntity(org.orcid.persistence.jpa.entities.ExternalIdentifierEntity) PersonExternalIdentifier(org.orcid.jaxb.model.v3.dev1.record.PersonExternalIdentifier) ApplicationException(org.orcid.core.exception.ApplicationException) OrcidDuplicatedElementException(org.orcid.core.exception.OrcidDuplicatedElementException) Date(java.util.Date)

Example 29 with PersonExternalIdentifiers

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());
}
Also used : PersonExternalIdentifiers(org.orcid.jaxb.model.v3.dev1.record.PersonExternalIdentifiers) PersonExternalIdentifier(org.orcid.jaxb.model.v3.dev1.record.PersonExternalIdentifier) Test(org.junit.Test)

Example 30 with PersonExternalIdentifiers

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();
}
Also used : PersonExternalIdentifiers(org.orcid.jaxb.model.v3.dev1.record.PersonExternalIdentifiers)

Aggregations

PersonExternalIdentifiers (org.orcid.jaxb.model.v3.dev1.record.PersonExternalIdentifiers)50 PersonExternalIdentifier (org.orcid.jaxb.model.v3.dev1.record.PersonExternalIdentifier)43 Test (org.junit.Test)36 OtherNames (org.orcid.jaxb.model.v3.dev1.record.OtherNames)34 Addresses (org.orcid.jaxb.model.v3.dev1.record.Addresses)33 Keywords (org.orcid.jaxb.model.v3.dev1.record.Keywords)33 ResearcherUrls (org.orcid.jaxb.model.v3.dev1.record.ResearcherUrls)33 Biography (org.orcid.jaxb.model.v3.dev1.record.Biography)32 Address (org.orcid.jaxb.model.v3.dev1.record.Address)31 Emails (org.orcid.jaxb.model.v3.dev1.record.Emails)31 Email (org.orcid.jaxb.model.v3.dev1.record.Email)30 Keyword (org.orcid.jaxb.model.v3.dev1.record.Keyword)30 OtherName (org.orcid.jaxb.model.v3.dev1.record.OtherName)30 ResearcherUrl (org.orcid.jaxb.model.v3.dev1.record.ResearcherUrl)30 Name (org.orcid.jaxb.model.v3.dev1.record.Name)26 Person (org.orcid.jaxb.model.v3.dev1.record.Person)25 Record (org.orcid.jaxb.model.v3.dev1.record.Record)13 DistinctionSummary (org.orcid.jaxb.model.v3.dev1.record.summary.DistinctionSummary)13 EducationSummary (org.orcid.jaxb.model.v3.dev1.record.summary.EducationSummary)13 EmploymentSummary (org.orcid.jaxb.model.v3.dev1.record.summary.EmploymentSummary)13