use of org.orcid.jaxb.model.v3.dev1.record.Address in project ORCID-Source by ORCID.
the class MemberV3ApiServiceDelegatorImpl method viewAddresses.
@Override
public Response viewAddresses(String orcid) {
Addresses addresses = addressManagerReadOnly.getAddresses(orcid);
// Lets copy the list so we don't modify the cached collection
if (addresses.getAddress() != null) {
List<Address> filteredAddresses = new ArrayList<Address>(addresses.getAddress());
addresses = new Addresses();
addresses.setAddress(filteredAddresses);
}
orcidSecurityManager.checkAndFilter(orcid, addresses.getAddress(), ScopePathType.ORCID_BIO_READ_LIMITED);
ElementUtils.setPathToAddresses(addresses, orcid);
// Set the latest last modified
Api3_0_Dev1LastModifiedDatesHelper.calculateLastModified(addresses);
sourceUtils.setSourceName(addresses);
return Response.ok(addresses).build();
}
use of org.orcid.jaxb.model.v3.dev1.record.Address in project ORCID-Source by ORCID.
the class MemberV3ApiServiceDelegatorImpl method viewAddress.
@Override
public Response viewAddress(String orcid, Long putCode) {
Address address = addressManagerReadOnly.getAddress(orcid, putCode);
orcidSecurityManager.checkAndFilter(orcid, address, ScopePathType.ORCID_BIO_READ_LIMITED);
ElementUtils.setPathToAddress(address, orcid);
sourceUtils.setSourceName(address);
return Response.ok(address).build();
}
use of org.orcid.jaxb.model.v3.dev1.record.Address in project ORCID-Source by ORCID.
the class RecordTest method testViewRecordFromPublicAPI.
@Test
public void testViewRecordFromPublicAPI() {
ClientResponse response = publicV3Dev1ApiClient.viewRecordXML(getUser1OrcidId());
assertNotNull(response);
assertEquals("invalid " + response, 200, response.getStatus());
Record record = response.getEntity(Record.class);
assertNotNull(record);
assertNotNull(record.getOrcidIdentifier());
assertEquals(getUser1OrcidId(), record.getOrcidIdentifier().getPath());
// Check the visibility of every activity that exists
if (record.getActivitiesSummary() != null) {
if (record.getActivitiesSummary() != null) {
// Distinctions
if (record.getActivitiesSummary().getDistinctions() != null) {
Distinctions d = record.getActivitiesSummary().getDistinctions();
if (d.getSummaries() != null) {
for (DistinctionSummary s : d.getSummaries()) {
assertNotNull(s.getSource());
assertEquals(Visibility.PUBLIC, s.getVisibility());
}
}
}
// Educations
if (record.getActivitiesSummary().getEducations() != null) {
Educations e = record.getActivitiesSummary().getEducations();
if (e.getSummaries() != null) {
for (EducationSummary s : e.getSummaries()) {
assertNotNull(s.getSource());
assertEquals(Visibility.PUBLIC, s.getVisibility());
}
}
}
// Employments
if (record.getActivitiesSummary().getEmployments() != null) {
Employments e = record.getActivitiesSummary().getEmployments();
if (e.getSummaries() != null) {
for (EmploymentSummary s : e.getSummaries()) {
assertNotNull(s.getSource());
assertEquals(Visibility.PUBLIC, s.getVisibility());
}
}
}
// InvitedPositions
if (record.getActivitiesSummary().getInvitedPositions() != null) {
InvitedPositions i = record.getActivitiesSummary().getInvitedPositions();
if (i.getSummaries() != null) {
for (InvitedPositionSummary s : i.getSummaries()) {
assertNotNull(s.getSource());
assertEquals(Visibility.PUBLIC, s.getVisibility());
}
}
}
// Memberships
if (record.getActivitiesSummary().getMemberships() != null) {
Memberships m = record.getActivitiesSummary().getMemberships();
if (m.getSummaries() != null) {
for (MembershipSummary s : m.getSummaries()) {
assertNotNull(s.getSource());
assertEquals(Visibility.PUBLIC, s.getVisibility());
}
}
}
// Qualifications
if (record.getActivitiesSummary().getQualifications() != null) {
Qualifications q = record.getActivitiesSummary().getQualifications();
if (q.getSummaries() != null) {
for (QualificationSummary s : q.getSummaries()) {
assertNotNull(s.getSource());
assertEquals(Visibility.PUBLIC, s.getVisibility());
}
}
}
// Services
if (record.getActivitiesSummary().getServices() != null) {
Services sv = record.getActivitiesSummary().getServices();
if (sv.getSummaries() != null) {
for (ServiceSummary s : sv.getSummaries()) {
assertNotNull(s.getSource());
assertEquals(Visibility.PUBLIC, s.getVisibility());
}
}
}
// Fundings
if (record.getActivitiesSummary().getFundings() != null) {
Fundings f = record.getActivitiesSummary().getFundings();
List<FundingGroup> groups = f.getFundingGroup();
if (groups != null) {
for (FundingGroup fGroup : groups) {
List<FundingSummary> summaries = fGroup.getFundingSummary();
if (summaries != null) {
for (FundingSummary s : summaries) {
assertNotNull(s.getSource());
assertEquals(Visibility.PUBLIC, s.getVisibility());
}
}
}
}
}
// PeerReviews
if (record.getActivitiesSummary().getPeerReviews() != null) {
PeerReviews p = record.getActivitiesSummary().getPeerReviews();
List<PeerReviewGroup> groups = p.getPeerReviewGroup();
if (groups != null) {
for (PeerReviewGroup pGroup : groups) {
List<PeerReviewSummary> summaries = pGroup.getPeerReviewSummary();
if (summaries != null) {
for (PeerReviewSummary s : summaries) {
assertNotNull(s.getSource());
assertEquals(Visibility.PUBLIC, s.getVisibility());
}
}
}
}
}
// Works
if (record.getActivitiesSummary().getWorks() != null) {
Works w = record.getActivitiesSummary().getWorks();
List<WorkGroup> groups = w.getWorkGroup();
if (groups != null) {
for (WorkGroup wGroup : groups) {
List<WorkSummary> summaries = wGroup.getWorkSummary();
if (summaries != null) {
for (WorkSummary s : summaries) {
assertNotNull(s.getSource());
assertEquals(Visibility.PUBLIC, s.getVisibility());
}
}
}
}
}
}
}
// Check the visibility of every biography elements that exists
if (record.getPerson() != null) {
// Address
if (record.getPerson().getAddresses() != null) {
Addresses addresses = record.getPerson().getAddresses();
List<Address> list = addresses.getAddress();
if (list != null) {
for (Address o : list) {
assertNotNull(o.getSource());
assertEquals(Visibility.PUBLIC, o.getVisibility());
}
}
}
// Biography
if (record.getPerson().getBiography() != null) {
Biography b = record.getPerson().getBiography();
if (b != null) {
assertNotNull(b.getVisibility());
assertEquals(Visibility.PUBLIC, b.getVisibility());
}
}
// Emails
if (record.getPerson().getEmails() != null) {
Emails emails = record.getPerson().getEmails();
List<Email> list = emails.getEmails();
if (list != null) {
for (Email e : list) {
assertNotNull(e.getVisibility());
assertEquals(Visibility.PUBLIC, e.getVisibility());
}
}
}
// External identifiers
if (record.getPerson().getExternalIdentifiers() != null) {
PersonExternalIdentifiers extIds = record.getPerson().getExternalIdentifiers();
List<PersonExternalIdentifier> list = extIds.getExternalIdentifiers();
if (list != null) {
for (PersonExternalIdentifier e : list) {
assertEquals(Visibility.PUBLIC, e.getVisibility());
}
}
}
// Keywords
if (record.getPerson().getKeywords() != null) {
Keywords keywords = record.getPerson().getKeywords();
List<Keyword> list = keywords.getKeywords();
if (list != null) {
for (Keyword e : list) {
assertEquals(Visibility.PUBLIC, e.getVisibility());
}
}
}
// Name
if (record.getPerson().getName() != null) {
Name name = record.getPerson().getName();
assertEquals(Visibility.PUBLIC, name.getVisibility());
}
// Other names
if (record.getPerson().getOtherNames() != null) {
OtherNames otherNames = record.getPerson().getOtherNames();
List<OtherName> list = otherNames.getOtherNames();
if (list != null) {
for (OtherName e : list) {
assertEquals(Visibility.PUBLIC, e.getVisibility());
}
}
}
// Researcher urls
if (record.getPerson().getResearcherUrls() != null) {
ResearcherUrls rUrls = record.getPerson().getResearcherUrls();
List<ResearcherUrl> list = rUrls.getResearcherUrls();
if (list != null) {
for (ResearcherUrl e : list) {
assertEquals(Visibility.PUBLIC, e.getVisibility());
}
}
}
}
}
use of org.orcid.jaxb.model.v3.dev1.record.Address in project ORCID-Source by ORCID.
the class AddressTest method testInvalidPutCodeReturns404.
@Test
public void testInvalidPutCodeReturns404() throws InterruptedException, JSONException {
String accessToken = getAccessToken();
assertNotNull(accessToken);
org.orcid.jaxb.model.v3.dev1.record.Address address = new org.orcid.jaxb.model.v3.dev1.record.Address();
address.setCountry(new org.orcid.jaxb.model.v3.dev1.common.Country(org.orcid.jaxb.model.v3.dev1.common.Iso3166Country.MX));
address.setPutCode(1234567890L);
ClientResponse response = memberV3Dev1ApiClient.updateAddress(getUser1OrcidId(), address, accessToken);
assertNotNull(response);
assertEquals(ClientResponse.Status.NOT_FOUND.getStatusCode(), response.getStatus());
}
use of org.orcid.jaxb.model.v3.dev1.record.Address in project ORCID-Source by ORCID.
the class AddressTest method testCreateGetUpdateAndDeleteAddress.
/**
* --------- -- -- -- V2.1 -- -- -- ---------
*/
@SuppressWarnings({ "rawtypes", "deprecation" })
@Test
public void testCreateGetUpdateAndDeleteAddress() throws InterruptedException, JSONException {
changeDefaultUserVisibility(org.orcid.jaxb.model.v3.dev1.common.Visibility.LIMITED);
String accessToken = getAccessToken();
assertNotNull(accessToken);
org.orcid.jaxb.model.v3.dev1.record.Address address = new org.orcid.jaxb.model.v3.dev1.record.Address();
address.setCountry(new org.orcid.jaxb.model.v3.dev1.common.Country(org.orcid.jaxb.model.v3.dev1.common.Iso3166Country.CR));
// Create
ClientResponse response = memberV3Dev1ApiClient.createAddress(getUser1OrcidId(), address, accessToken);
assertNotNull(response);
assertEquals(ClientResponse.Status.CREATED.getStatusCode(), response.getStatus());
Map map = response.getMetadata();
assertNotNull(map);
assertTrue(map.containsKey("Location"));
List resultWithPutCode = (List) map.get("Location");
String location = resultWithPutCode.get(0).toString();
Long putCode = Long.valueOf(location.substring(location.lastIndexOf('/') + 1));
// Get all and verify
response = memberV3Dev1ApiClient.viewAddresses(getUser1OrcidId(), accessToken);
assertEquals(Response.Status.OK.getStatusCode(), response.getStatus());
org.orcid.jaxb.model.v3.dev1.record.Addresses addresses = response.getEntity(org.orcid.jaxb.model.v3.dev1.record.Addresses.class);
assertNotNull(addresses);
assertNotNull(addresses.getAddress());
boolean foundCR = false;
boolean foundUS = false;
for (org.orcid.jaxb.model.v3.dev1.record.Address add : addresses.getAddress()) {
if (add.getCountry().getValue().equals(org.orcid.jaxb.model.v3.dev1.common.Iso3166Country.CR)) {
assertEquals(org.orcid.jaxb.model.v3.dev1.common.Visibility.LIMITED, add.getVisibility());
foundCR = true;
} else if (add.getCountry().getValue().equals(org.orcid.jaxb.model.v3.dev1.common.Iso3166Country.US)) {
assertEquals(org.orcid.jaxb.model.v3.dev1.common.Visibility.PUBLIC, add.getVisibility());
foundUS = true;
}
}
assertTrue(foundCR);
assertTrue(foundUS);
// Get it
response = memberV3Dev1ApiClient.viewAddress(getUser1OrcidId(), putCode, accessToken);
assertNotNull(response);
address = response.getEntity(org.orcid.jaxb.model.v3.dev1.record.Address.class);
assertNotNull(address);
assertNotNull(address.getSource());
assertEquals(getClient1ClientId(), address.getSource().retrieveSourcePath());
assertNotNull(address.getCountry());
assertNotNull(address.getCountry().getValue());
assertEquals(org.orcid.jaxb.model.v3.dev1.common.Iso3166Country.CR, address.getCountry().getValue());
assertEquals(org.orcid.jaxb.model.v3.dev1.common.Visibility.LIMITED, address.getVisibility());
assertNotNull(address.getDisplayIndex());
Long originalDisplayIndex = address.getDisplayIndex();
// Save the original visibility
org.orcid.jaxb.model.v3.dev1.common.Visibility originalVisibility = address.getVisibility();
org.orcid.jaxb.model.v3.dev1.common.Visibility updatedVisibility = org.orcid.jaxb.model.v3.dev1.common.Visibility.PRIVATE;
// Verify you can't update the visibility
address.setVisibility(updatedVisibility);
ClientResponse putResponse = memberV3Dev1ApiClient.updateAddress(getUser1OrcidId(), address, accessToken);
assertEquals(Response.Status.FORBIDDEN.getStatusCode(), putResponse.getStatus());
org.orcid.jaxb.model.v3.dev1.error.OrcidError error = putResponse.getEntity(org.orcid.jaxb.model.v3.dev1.error.OrcidError.class);
assertNotNull(error);
assertEquals(Integer.valueOf(9035), error.getErrorCode());
// Set the visibility again to the initial one
address.setVisibility(originalVisibility);
// Update
address.getCountry().setValue(org.orcid.jaxb.model.v3.dev1.common.Iso3166Country.PA);
response = memberV3Dev1ApiClient.updateAddress(getUser1OrcidId(), address, accessToken);
assertNotNull(response);
assertEquals(ClientResponse.Status.OK.getStatusCode(), response.getStatus());
response = memberV3Dev1ApiClient.viewAddress(getUser1OrcidId(), putCode, accessToken);
assertNotNull(response);
org.orcid.jaxb.model.v3.dev1.record.Address updatedAddress = response.getEntity(org.orcid.jaxb.model.v3.dev1.record.Address.class);
assertNotNull(updatedAddress);
assertNotNull(updatedAddress.getCountry());
assertEquals(org.orcid.jaxb.model.v3.dev1.common.Iso3166Country.PA, updatedAddress.getCountry().getValue());
assertEquals(address.getPutCode(), updatedAddress.getPutCode());
assertEquals(originalDisplayIndex, updatedAddress.getDisplayIndex());
// Delete
response = memberV3Dev1ApiClient.deleteAddress(getUser1OrcidId(), putCode, accessToken);
assertNotNull(response);
assertEquals(ClientResponse.Status.NO_CONTENT.getStatusCode(), response.getStatus());
}
Aggregations