Search in sources :

Example 6 with Email

use of org.orcid.jaxb.model.message.Email in project ORCID-Source by ORCID.

the class OrcidMessageVersionConverterImplV1_1ToV1_2_rc1 method downgradeProfile.

private void downgradeProfile(OrcidProfile orcidProfile) {
    if (orcidProfile != null) {
        orcidProfile.setAffiliations(null);
        OrcidBio orcidBio = orcidProfile.getOrcidBio();
        if (orcidBio != null) {
            ContactDetails contactDetails = orcidBio.getContactDetails();
            if (contactDetails != null) {
                for (Email email : contactDetails.getEmail()) {
                    email.setSourceClientId(null);
                }
            }
            ExternalIdentifiers extIds = orcidBio.getExternalIdentifiers();
            if (extIds != null) {
                for (ExternalIdentifier extId : extIds.getExternalIdentifier()) {
                    extId.setSource(null);
                }
            }
        }
        if (orcidProfile.getOrcidActivities() != null) {
            if (orcidProfile.getOrcidActivities().getOrcidWorks() != null) {
                for (OrcidWork act : orcidProfile.getOrcidActivities().getOrcidWorks().getOrcidWork()) downGradeActivity(act);
            }
        }
    }
}
Also used : Email(org.orcid.jaxb.model.message.Email) OrcidBio(org.orcid.jaxb.model.message.OrcidBio) ContactDetails(org.orcid.jaxb.model.message.ContactDetails) ExternalIdentifier(org.orcid.jaxb.model.message.ExternalIdentifier) OrcidWork(org.orcid.jaxb.model.message.OrcidWork) ExternalIdentifiers(org.orcid.jaxb.model.message.ExternalIdentifiers)

Example 7 with Email

use of org.orcid.jaxb.model.message.Email in project ORCID-Source by ORCID.

the class OrcidJaxbCopyManagerTest method testUpdatedContactDetailsToExistingPreservingVisibility.

@Test
public void testUpdatedContactDetailsToExistingPreservingVisibility() throws Exception {
    when(sourceManager.retrieveSourceOrcid()).thenReturn("APP-0000000000000000");
    OrcidBio existingOrcidBioProtected = protectedOrcidMessage.getOrcidProfile().getOrcidBio();
    OrcidBio updatedOrcidBioPublic = publicOrcidMessage.getOrcidProfile().getOrcidBio();
    ContactDetails existingContactDetails = existingOrcidBioProtected.getContactDetails();
    ContactDetails updatedContactDetails = updatedOrcidBioPublic.getContactDetails();
    assertEquals("josiah_carberry@brown.edu", existingContactDetails.retrievePrimaryEmail().getValue());
    assertEquals(Visibility.LIMITED, existingContactDetails.retrievePrimaryEmail().getVisibility());
    String[] alternativeEmails = new String[] { "josiah_carberry_1@brown.edu" };
    for (String alternativeEmail : alternativeEmails) {
        Email email = existingContactDetails.getEmailByString(alternativeEmail);
        assertNotNull(email);
        assertEquals(Visibility.LIMITED, email.getVisibility());
    }
    assertEquals(2, existingContactDetails.getEmail().size());
    Address existingAddress = existingContactDetails.getAddress();
    assertTrue(Iso3166Country.US.equals(existingAddress.getCountry().getValue()) && existingAddress.getCountry().getVisibility() == null);
    Address updatedAddress = new Address();
    Country country = new Country(Iso3166Country.GB);
    country.setVisibility(Visibility.LIMITED);
    updatedAddress.setCountry(country);
    updatedOrcidBioPublic.getContactDetails().setAddress(updatedAddress);
    List<Email> updatedEmailList = new ArrayList<>();
    Email updatedMainEmail = new Email("jimmyb@semantico.com");
    updatedMainEmail.setSourceClientId("APP-0000000000000000");
    updatedMainEmail.setVisibility(Visibility.PUBLIC);
    updatedMainEmail.setPrimary(true);
    updatedEmailList.add(updatedMainEmail);
    String[] updatedAlternativeEmails = new String[] { "jimmyb1@semantico.com" };
    for (String alternativeEmail : updatedAlternativeEmails) {
        Email email = new Email(alternativeEmail);
        email.setPrimary(false);
        email.setVerified(false);
        email.setVisibility(Visibility.PRIVATE);
        email.setSourceClientId("APP-0000000000000000");
        updatedEmailList.add(email);
    }
    updatedContactDetails.getEmail().clear();
    updatedContactDetails.getEmail().addAll(updatedEmailList);
    updatedContactDetails.setAddress(updatedAddress);
    orcidJaxbCopyManager.copyUpdatedBioToExistingWithVisibility(existingOrcidBioProtected, updatedOrcidBioPublic);
    existingContactDetails = existingOrcidBioProtected.getContactDetails();
    assertEquals("josiah_carberry@brown.edu", existingContactDetails.retrievePrimaryEmail().getValue());
    assertEquals(Visibility.LIMITED, existingContactDetails.retrievePrimaryEmail().getVisibility());
    //Emails remain unchanged
    assertEquals(2, existingContactDetails.getEmail().size());
    assertEquals(Iso3166Country.GB, existingContactDetails.getAddress().getCountry().getValue());
    assertEquals(OrcidVisibilityDefaults.COUNTRY_DEFAULT.getVisibility(), existingContactDetails.getAddress().getCountry().getVisibility());
    updatedContactDetails = new ContactDetails();
    updatedOrcidBioPublic.setContactDetails(updatedContactDetails);
    updatedAddress = new Address();
    country = new Country(Iso3166Country.AU);
    country.setVisibility(null);
    updatedAddress.setCountry(country);
    updatedContactDetails.setAddress(updatedAddress);
    updatedEmailList = new ArrayList<>();
    updatedMainEmail = new Email("jimmyb1@semantico.com");
    updatedMainEmail.setVisibility(Visibility.PUBLIC);
    updatedEmailList.add(updatedMainEmail);
    String[] moreAlternativeEmails = new String[] { "jimmyb3@semantico.com" };
    for (String alternativeEmail : moreAlternativeEmails) {
        Email email = new Email(alternativeEmail);
        email.setPrimary(false);
        email.setVisibility(Visibility.PRIVATE);
        email.setSourceClientId("APP-0000000000000000");
        updatedEmailList.add(email);
    }
    updatedContactDetails.getEmail().clear();
    updatedContactDetails.getEmail().addAll(updatedEmailList);
    orcidJaxbCopyManager.copyUpdatedBioToExistingWithVisibility(existingOrcidBioProtected, updatedOrcidBioPublic);
    existingContactDetails = existingOrcidBioProtected.getContactDetails();
    //Emails remain unchanged
    assertEquals(2, existingContactDetails.getEmail().size());
    assertEquals(Iso3166Country.AU, existingContactDetails.getAddress().getCountry().getValue());
}
Also used : Email(org.orcid.jaxb.model.message.Email) OrcidBio(org.orcid.jaxb.model.message.OrcidBio) ContactDetails(org.orcid.jaxb.model.message.ContactDetails) Address(org.orcid.jaxb.model.message.Address) ArrayList(java.util.ArrayList) Country(org.orcid.jaxb.model.message.Country) Iso3166Country(org.orcid.jaxb.model.message.Iso3166Country) Test(org.junit.Test) BaseTest(org.orcid.core.BaseTest)

Example 8 with Email

use of org.orcid.jaxb.model.message.Email in project ORCID-Source by ORCID.

the class VerifiedRequiredAnnouncement2017 method call.

@Override
public ProfileEventResult call() throws Exception {
    String orcidId = getOrcidProfile().getOrcidIdentifier().getPath();
    if (orcidProfile.getOrcidBio() == null || orcidProfile.getOrcidBio().getContactDetails() == null || orcidProfile.getOrcidBio().getContactDetails().retrievePrimaryEmail() == null || orcidProfile.getOrcidBio().getContactDetails().retrievePrimaryEmail().getValue() == null) {
        return new ProfileEventResult(orcidId, ProfileEventType.VERIFIED_REQUIRED_SKIPPED_2017);
    }
    if (orcidProfile.isLocked() || orcidProfile.isDeactivated() || orcidProfile.getOrcidDeprecated() != null || !orcidProfile.getOrcidHistory().getClaimed().isValue()) {
        return new ProfileEventResult(orcidId, ProfileEventType.VERIFIED_REQUIRED_SKIPPED_2017);
    }
    Email primaryEmail = orcidProfile.getOrcidBio().getContactDetails().retrievePrimaryEmail();
    if (primaryEmail.isVerified()) {
        return new ProfileEventResult(orcidId, ProfileEventType.VERIFIED_REQUIRED_HAS_VALIDATED_2017);
    } else {
        try {
            boolean sent = notificationManager.sendVerifiedRequiredAnnouncement2017(orcidProfile);
            if (sent) {
                return new ProfileEventResult(orcidId, ProfileEventType.VERIFIED_REQUIRED_SENT_2017);
            } else {
                return new ProfileEventResult(orcidId, ProfileEventType.VERIFIED_REQUIRED_FAIL_2017);
            }
        } catch (Exception e) {
            LOG.error("ProfileEventType exception trying to send email to: " + orcidProfile.retrieveOrcidUriAsString(), e);
            return new ProfileEventResult(orcidId, ProfileEventType.VERIFIED_REQUIRED_FAIL_2017);
        }
    }
}
Also used : Email(org.orcid.jaxb.model.message.Email)

Example 9 with Email

use of org.orcid.jaxb.model.message.Email in project ORCID-Source by ORCID.

the class JpaJaxbEntityAdapterToOrcidProfileTest method testToOrcidProfileWithNewWayOfDoingEmails.

@Test
@Transactional(propagation = Propagation.REQUIRES_NEW)
public void testToOrcidProfileWithNewWayOfDoingEmails() throws SAXException, IOException {
    ProfileEntity profileEntity = profileDao.find("4444-4444-4444-4445");
    long start = System.currentTimeMillis();
    OrcidProfile orcidProfile = adapter.toOrcidProfile(profileEntity);
    System.out.println("Took: " + Long.toString(System.currentTimeMillis() - start));
    ContactDetails contactDetails = orcidProfile.getOrcidBio().getContactDetails();
    Email primaryEmail = contactDetails.retrievePrimaryEmail();
    assertNotNull(primaryEmail);
    assertTrue(primaryEmail.isPrimary());
    assertTrue(primaryEmail.isCurrent());
    assertFalse(primaryEmail.isVerified());
    assertEquals(Visibility.PRIVATE, primaryEmail.getVisibility());
    assertEquals("andrew@timothy.com", primaryEmail.getValue());
    assertEquals("4444-4444-4444-4441", primaryEmail.getSource());
    Email nonPrimaryEmail = contactDetails.getEmailByString("andrew2@timothy.com");
    assertNotNull(nonPrimaryEmail);
    assertFalse(nonPrimaryEmail.isPrimary());
    assertFalse(nonPrimaryEmail.isCurrent());
    assertFalse(nonPrimaryEmail.isVerified());
    assertEquals(Visibility.PRIVATE, nonPrimaryEmail.getVisibility());
    assertEquals("andrew2@timothy.com", nonPrimaryEmail.getValue());
    assertEquals("4444-4444-4444-4441", nonPrimaryEmail.getSource());
    assertEquals(2, contactDetails.getEmail().size());
    validateAgainstSchema(new OrcidMessage(orcidProfile));
}
Also used : OrcidProfile(org.orcid.jaxb.model.message.OrcidProfile) Email(org.orcid.jaxb.model.message.Email) ContactDetails(org.orcid.jaxb.model.message.ContactDetails) OrcidMessage(org.orcid.jaxb.model.message.OrcidMessage) ProfileEntity(org.orcid.persistence.jpa.entities.ProfileEntity) DBUnitTest(org.orcid.test.DBUnitTest) Test(org.junit.Test) Transactional(org.springframework.transaction.annotation.Transactional)

Example 10 with Email

use of org.orcid.jaxb.model.message.Email in project ORCID-Source by ORCID.

the class OrcidSearchManagerImplTest method getOrcidProfile6789MandatoryOnly.

private OrcidProfile getOrcidProfile6789MandatoryOnly() {
    OrcidProfile orcidProfile = new OrcidProfile();
    orcidProfile.setOrcidIdentifier("6789");
    OrcidBio orcidBio = new OrcidBio();
    orcidProfile.setOrcidBio(orcidBio);
    ContactDetails contactDetails = new ContactDetails();
    contactDetails.addOrReplacePrimaryEmail(new Email("don@semantico.com"));
    orcidBio.setContactDetails(contactDetails);
    PersonalDetails personalDetails = new PersonalDetails();
    orcidBio.setPersonalDetails(personalDetails);
    personalDetails.setFamilyName(new FamilyName("Thomson"));
    personalDetails.setGivenNames(new GivenNames("Homer J"));
    OrcidActivities orcidActivities = new OrcidActivities();
    orcidProfile.setOrcidActivities(orcidActivities);
    Affiliations affiliations = new Affiliations();
    orcidActivities.setAffiliations(affiliations);
    return orcidProfile;
}
Also used : OrcidProfile(org.orcid.jaxb.model.message.OrcidProfile) Email(org.orcid.jaxb.model.message.Email) OrcidBio(org.orcid.jaxb.model.message.OrcidBio) ContactDetails(org.orcid.jaxb.model.message.ContactDetails) FamilyName(org.orcid.jaxb.model.message.FamilyName) Affiliations(org.orcid.jaxb.model.message.Affiliations) GivenNames(org.orcid.jaxb.model.message.GivenNames) PersonalDetails(org.orcid.jaxb.model.message.PersonalDetails) OrcidActivities(org.orcid.jaxb.model.message.OrcidActivities)

Aggregations

Email (org.orcid.jaxb.model.message.Email)45 ContactDetails (org.orcid.jaxb.model.message.ContactDetails)22 OrcidBio (org.orcid.jaxb.model.message.OrcidBio)20 OrcidProfile (org.orcid.jaxb.model.message.OrcidProfile)20 OrcidMessage (org.orcid.jaxb.model.message.OrcidMessage)18 Test (org.junit.Test)17 PersonalDetails (org.orcid.jaxb.model.message.PersonalDetails)14 GivenNames (org.orcid.jaxb.model.message.GivenNames)12 FamilyName (org.orcid.jaxb.model.message.FamilyName)11 DBUnitTest (org.orcid.test.DBUnitTest)10 ArrayList (java.util.ArrayList)8 Address (org.orcid.jaxb.model.message.Address)7 Biography (org.orcid.jaxb.model.message.Biography)7 CreditName (org.orcid.jaxb.model.message.CreditName)7 ExternalIdentifiers (org.orcid.jaxb.model.message.ExternalIdentifiers)7 OrcidHistory (org.orcid.jaxb.model.message.OrcidHistory)7 ExternalIdentifier (org.orcid.jaxb.model.message.ExternalIdentifier)6 Keyword (org.orcid.jaxb.model.message.Keyword)6 OrcidActivities (org.orcid.jaxb.model.message.OrcidActivities)6 OrcidWork (org.orcid.jaxb.model.message.OrcidWork)6