Search in sources :

Example 26 with Memberships

use of org.orcid.jaxb.model.v3.dev1.record.summary.Memberships in project ORCID-Source by ORCID.

the class OrcidSecurityManagerImpl method checkAndFilter.

@Override
public void checkAndFilter(String orcid, ActivitiesSummary activities) {
    if (activities == null) {
        return;
    }
    // Check the token
    isMyToken(orcid);
    // Distinctions
    if (activities.getDistinctions() != null) {
        checkAndFilter(orcid, activities.getDistinctions().getSummaries(), READ_AFFILIATIONS_REQUIRED_SCOPE, true);
    }
    // Educations
    if (activities.getEducations() != null) {
        checkAndFilter(orcid, activities.getEducations().getSummaries(), READ_AFFILIATIONS_REQUIRED_SCOPE, true);
    }
    // Employments
    if (activities.getEmployments() != null) {
        checkAndFilter(orcid, activities.getEmployments().getSummaries(), READ_AFFILIATIONS_REQUIRED_SCOPE, true);
    }
    // Invited positions
    if (activities.getInvitedPositions() != null) {
        checkAndFilter(orcid, activities.getInvitedPositions().getSummaries(), READ_AFFILIATIONS_REQUIRED_SCOPE, true);
    }
    // Memberships
    if (activities.getMemberships() != null) {
        checkAndFilter(orcid, activities.getMemberships().getSummaries(), READ_AFFILIATIONS_REQUIRED_SCOPE, true);
    }
    // Qualifications
    if (activities.getQualifications() != null) {
        checkAndFilter(orcid, activities.getQualifications().getSummaries(), READ_AFFILIATIONS_REQUIRED_SCOPE, true);
    }
    // Services
    if (activities.getServices() != null) {
        checkAndFilter(orcid, activities.getServices().getSummaries(), READ_AFFILIATIONS_REQUIRED_SCOPE, true);
    }
    // Funding
    if (activities.getFundings() != null) {
        Iterator<FundingGroup> groupIt = activities.getFundings().getFundingGroup().iterator();
        while (groupIt.hasNext()) {
            FundingGroup group = groupIt.next();
            // Filter the list of elements
            checkAndFilter(orcid, group.getFundingSummary(), READ_FUNDING_REQUIRED_SCOPE, true);
            // Clean external identifiers
            if (group.getFundingSummary().isEmpty()) {
                groupIt.remove();
            } else {
                filterExternalIdentifiers(group);
            }
        }
    }
    // PeerReviews
    if (activities.getPeerReviews() != null) {
        Iterator<PeerReviewGroup> groupIt = activities.getPeerReviews().getPeerReviewGroup().iterator();
        while (groupIt.hasNext()) {
            PeerReviewGroup group = groupIt.next();
            // Filter the list of elements
            checkAndFilter(orcid, group.getPeerReviewSummary(), READ_PEER_REVIEWS_REQUIRED_SCOPE, true);
            if (group.getPeerReviewSummary().isEmpty()) {
                groupIt.remove();
            }
        }
    }
    // Works
    if (activities.getWorks() != null) {
        Iterator<WorkGroup> groupIt = activities.getWorks().getWorkGroup().iterator();
        while (groupIt.hasNext()) {
            WorkGroup group = groupIt.next();
            // Filter the list of elements
            checkAndFilter(orcid, group.getWorkSummary(), READ_WORKS_REQUIRED_SCOPE, true);
            // Clean external identifiers
            if (group.getWorkSummary().isEmpty()) {
                groupIt.remove();
            } else {
                filterExternalIdentifiers(group);
            }
        }
    }
}
Also used : PeerReviewGroup(org.orcid.jaxb.model.v3.dev1.record.summary.PeerReviewGroup) WorkGroup(org.orcid.jaxb.model.v3.dev1.record.summary.WorkGroup) FundingGroup(org.orcid.jaxb.model.v3.dev1.record.summary.FundingGroup)

Example 27 with Memberships

use of org.orcid.jaxb.model.v3.dev1.record.summary.Memberships in project ORCID-Source by ORCID.

the class ValidateV3_dev1SamplesTest method unmarshallFromPath.

private Object unmarshallFromPath(String path, Class<?> type, String schemaPath) throws SAXException, URISyntaxException {
    try (Reader reader = new InputStreamReader(getClass().getResourceAsStream(path))) {
        Object obj = unmarshall(reader, type, schemaPath);
        Object result = null;
        if (ResearcherUrls.class.equals(type)) {
            result = (ResearcherUrls) obj;
        } else if (ResearcherUrl.class.equals(type)) {
            result = (ResearcherUrl) obj;
        } else if (PersonalDetails.class.equals(type)) {
            result = (PersonalDetails) obj;
        } else if (PersonExternalIdentifier.class.equals(type)) {
            result = (PersonExternalIdentifier) obj;
        } else if (PersonExternalIdentifiers.class.equals(type)) {
            result = (PersonExternalIdentifiers) obj;
        } else if (Biography.class.equals(type)) {
            result = (Biography) obj;
        } else if (Name.class.equals(type)) {
            result = (Name) obj;
        } else if (CreditName.class.equals(type)) {
            result = (CreditName) obj;
        } else if (OtherName.class.equals(type)) {
            result = (OtherName) obj;
        } else if (OtherNames.class.equals(type)) {
            result = (OtherNames) obj;
        } else if (Keywords.class.equals(type)) {
            result = (Keywords) obj;
        } else if (Keyword.class.equals(type)) {
            result = (Keyword) obj;
        } else if (Addresses.class.equals(type)) {
            result = (Addresses) obj;
        } else if (Address.class.equals(type)) {
            result = (Address) obj;
        } else if (Emails.class.equals(type)) {
            result = (Emails) obj;
        } else if (Email.class.equals(type)) {
            result = (Email) obj;
        } else if (Person.class.equals(type)) {
            result = (Person) obj;
        } else if (Deprecated.class.equals(type)) {
            result = (Deprecated) obj;
        } else if (Preferences.class.equals(type)) {
            result = (Preferences) obj;
        } else if (History.class.equals(type)) {
            result = (History) obj;
        } else if (Record.class.equals(type)) {
            result = (Record) obj;
        } else if (ActivitiesSummary.class.equals(type)) {
            result = (ActivitiesSummary) obj;
        } else if (Works.class.equals(type)) {
            result = (Works) obj;
        } else if (Education.class.equals(type)) {
            result = (Education) obj;
        } else if (Educations.class.equals(type)) {
            result = (Educations) obj;
        } else if (Employment.class.equals(type)) {
            result = (Employment) obj;
        } else if (Employments.class.equals(type)) {
            result = (Employments) obj;
        } else if (Distinction.class.equals(type)) {
            result = (Distinction) obj;
        } else if (Distinctions.class.equals(type)) {
            result = (Distinctions) obj;
        } else if (InvitedPosition.class.equals(type)) {
            result = (InvitedPosition) obj;
        } else if (InvitedPositions.class.equals(type)) {
            result = (InvitedPositions) obj;
        } else if (Membership.class.equals(type)) {
            result = (Membership) obj;
        } else if (Memberships.class.equals(type)) {
            result = (Memberships) obj;
        } else if (Qualification.class.equals(type)) {
            result = (Qualification) obj;
        } else if (Qualifications.class.equals(type)) {
            result = (Qualifications) obj;
        } else if (Service.class.equals(type)) {
            result = (Service) obj;
        } else if (Services.class.equals(type)) {
            result = (Services) obj;
        }
        return result;
    } catch (IOException e) {
        throw new RuntimeException("Error reading notification from classpath", e);
    }
}
Also used : Email(org.orcid.jaxb.model.v3.dev1.record.Email) InputStreamReader(java.io.InputStreamReader) Keyword(org.orcid.jaxb.model.v3.dev1.record.Keyword) Address(org.orcid.jaxb.model.v3.dev1.record.Address) OtherNames(org.orcid.jaxb.model.v3.dev1.record.OtherNames) InvitedPosition(org.orcid.jaxb.model.v3.dev1.record.InvitedPosition) CreditName(org.orcid.jaxb.model.v3.dev1.record.CreditName) Reader(java.io.Reader) InputStreamReader(java.io.InputStreamReader) Service(org.orcid.jaxb.model.v3.dev1.record.Service) IOException(java.io.IOException) PersonExternalIdentifier(org.orcid.jaxb.model.v3.dev1.record.PersonExternalIdentifier) History(org.orcid.jaxb.model.v3.dev1.record.History) ActivitiesSummary(org.orcid.jaxb.model.v3.dev1.record.summary.ActivitiesSummary) Qualification(org.orcid.jaxb.model.v3.dev1.record.Qualification) Deprecated(org.orcid.jaxb.model.v3.dev1.record.Deprecated) Education(org.orcid.jaxb.model.v3.dev1.record.Education) Employment(org.orcid.jaxb.model.v3.dev1.record.Employment) Biography(org.orcid.jaxb.model.v3.dev1.record.Biography) Membership(org.orcid.jaxb.model.v3.dev1.record.Membership) ResearcherUrl(org.orcid.jaxb.model.v3.dev1.record.ResearcherUrl) Distinction(org.orcid.jaxb.model.v3.dev1.record.Distinction)

Example 28 with Memberships

use of org.orcid.jaxb.model.v3.dev1.record.summary.Memberships in project ORCID-Source by ORCID.

the class PublicV3ApiServiceDelegatorTest method testViewMemberships.

@Test
public void testViewMemberships() {
    Response response = serviceDelegator.viewMemberships(ORCID);
    assertNotNull(response);
    Memberships memberships = (Memberships) response.getEntity();
    assertNotNull(memberships);
    assertEquals("/0000-0000-0000-0003/memberships", memberships.getPath());
    assertNotNull(memberships.getLastModifiedDate());
    assertNotNull(memberships.getLastModifiedDate().getValue());
    assertEquals(1, memberships.getSummaries().size());
    MembershipSummary membership = memberships.getSummaries().get(0);
    assertEquals(Long.valueOf(37), membership.getPutCode());
    assertNotNull(membership.getLastModifiedDate());
    assertNotNull(membership.getLastModifiedDate().getValue());
    assertEquals("/0000-0000-0000-0003/membership/37", membership.getPath());
    assertEquals("PUBLIC Department", membership.getDepartmentName());
    assertEquals(Visibility.PUBLIC.value(), membership.getVisibility().value());
    assertEquals("APP-5555555555555555", membership.getSource().retrieveSourcePath());
}
Also used : Response(javax.ws.rs.core.Response) Memberships(org.orcid.jaxb.model.v3.dev1.record.summary.Memberships) MembershipSummary(org.orcid.jaxb.model.v3.dev1.record.summary.MembershipSummary) DBUnitTest(org.orcid.test.DBUnitTest) Test(org.junit.Test)

Example 29 with Memberships

use of org.orcid.jaxb.model.v3.dev1.record.summary.Memberships in project ORCID-Source by ORCID.

the class PublicV3ApiServiceDelegatorTest method testGetPublicMemberships.

@Test
public void testGetPublicMemberships() {
    Response r = serviceDelegator.viewMemberships(ORCID);
    assertNotNull(r);
    Memberships memberships = (Memberships) r.getEntity();
    assertNotNull(memberships);
    assertNotNull(memberships.getLastModifiedDate());
    assertNotNull(memberships.getLastModifiedDate().getValue());
    assertNotNull(memberships.getSummaries());
    assertEquals(1, memberships.getSummaries().size());
    assertEquals(Long.valueOf(37), memberships.getSummaries().get(0).getPutCode());
    assertEquals(Visibility.PUBLIC, memberships.getSummaries().get(0).getVisibility());
    assertNotNull(memberships.getSummaries().get(0).getLastModifiedDate());
    assertNotNull(memberships.getSummaries().get(0).getLastModifiedDate().getValue());
}
Also used : Response(javax.ws.rs.core.Response) Memberships(org.orcid.jaxb.model.v3.dev1.record.summary.Memberships) DBUnitTest(org.orcid.test.DBUnitTest) Test(org.junit.Test)

Example 30 with Memberships

use of org.orcid.jaxb.model.v3.dev1.record.summary.Memberships in project ORCID-Source by ORCID.

the class PublicV3ApiServiceDelegatorImpl method viewMemberships.

@Override
public Response viewMemberships(String orcid) {
    List<MembershipSummary> memberships = affiliationsManagerReadOnly.getMembershipSummaryList(orcid);
    Memberships publicMemberships = new Memberships();
    for (MembershipSummary summary : memberships) {
        if (Visibility.PUBLIC.equals(summary.getVisibility())) {
            ActivityUtils.setPathToActivity(summary, orcid);
            sourceUtilsReadOnly.setSourceName(summary);
            publicMemberships.getSummaries().add(summary);
        }
    }
    Api3_0_Dev1LastModifiedDatesHelper.calculateLastModified(publicMemberships);
    ActivityUtils.setPathToAffiliations(publicMemberships, orcid);
    return Response.ok(publicMemberships).build();
}
Also used : Memberships(org.orcid.jaxb.model.v3.dev1.record.summary.Memberships) MembershipSummary(org.orcid.jaxb.model.v3.dev1.record.summary.MembershipSummary)

Aggregations

Test (org.junit.Test)43 MembershipSummary (org.orcid.jaxb.model.v3.dev1.record.summary.MembershipSummary)40 ActivitiesSummary (org.orcid.jaxb.model.v3.dev1.record.summary.ActivitiesSummary)34 DistinctionSummary (org.orcid.jaxb.model.v3.dev1.record.summary.DistinctionSummary)34 EducationSummary (org.orcid.jaxb.model.v3.dev1.record.summary.EducationSummary)34 EmploymentSummary (org.orcid.jaxb.model.v3.dev1.record.summary.EmploymentSummary)34 FundingSummary (org.orcid.jaxb.model.v3.dev1.record.summary.FundingSummary)34 InvitedPositionSummary (org.orcid.jaxb.model.v3.dev1.record.summary.InvitedPositionSummary)34 QualificationSummary (org.orcid.jaxb.model.v3.dev1.record.summary.QualificationSummary)34 ServiceSummary (org.orcid.jaxb.model.v3.dev1.record.summary.ServiceSummary)34 WorkSummary (org.orcid.jaxb.model.v3.dev1.record.summary.WorkSummary)34 PeerReviewSummary (org.orcid.jaxb.model.v3.dev1.record.summary.PeerReviewSummary)33 Memberships (org.orcid.jaxb.model.v3.dev1.record.summary.Memberships)16 Address (org.orcid.jaxb.model.v3.dev1.record.Address)15 Email (org.orcid.jaxb.model.v3.dev1.record.Email)15 Keyword (org.orcid.jaxb.model.v3.dev1.record.Keyword)15 PersonExternalIdentifier (org.orcid.jaxb.model.v3.dev1.record.PersonExternalIdentifier)15 ResearcherUrl (org.orcid.jaxb.model.v3.dev1.record.ResearcherUrl)15 Biography (org.orcid.jaxb.model.v3.dev1.record.Biography)14 Name (org.orcid.jaxb.model.v3.dev1.record.Name)14