From 0a70cee0a8ecaa37afd827bcdc8a1278ad0311b1 Mon Sep 17 00:00:00 2001 From: Daniel Palafox Date: Tue, 1 Aug 2023 19:34:30 +0700 Subject: [PATCH] fix: Add status and fix organization name --- .../pojo/summary/AffiliationSummary.java | 2 +- .../org/orcid/pojo/summary/RecordSummary.java | 7 ++++ .../controllers/PublicRecordController.java | 7 ++++ .../PublicRecordControllerTest.java | 37 ++++++++++++++++++- 4 files changed, 50 insertions(+), 3 deletions(-) diff --git a/orcid-core/src/main/java/org/orcid/pojo/summary/AffiliationSummary.java b/orcid-core/src/main/java/org/orcid/pojo/summary/AffiliationSummary.java index 811bf88d50c..aec33d72eff 100644 --- a/orcid-core/src/main/java/org/orcid/pojo/summary/AffiliationSummary.java +++ b/orcid-core/src/main/java/org/orcid/pojo/summary/AffiliationSummary.java @@ -85,7 +85,7 @@ public static AffiliationSummary valueOf(org.orcid.jaxb.model.v3.release.record. AffiliationSummary form = new AffiliationSummary(); if (as != null) { - if (as.getOrganization().getName() == null || as.getOrganization().getName().trim().length() == 0) { + if (as.getOrganization() != null && as.getOrganization().getName() != null && as.getOrganization().getName().trim().length() != 0) { form.setOrganizationName(as.getOrganization().getName()); } diff --git a/orcid-core/src/main/java/org/orcid/pojo/summary/RecordSummary.java b/orcid-core/src/main/java/org/orcid/pojo/summary/RecordSummary.java index 363ed25d0da..27950432a11 100644 --- a/orcid-core/src/main/java/org/orcid/pojo/summary/RecordSummary.java +++ b/orcid-core/src/main/java/org/orcid/pojo/summary/RecordSummary.java @@ -19,6 +19,7 @@ public class RecordSummary { private List professionalActivities; private int professionalActivitiesCount; private List externalIdentifiers; + private String status; public String getName() { return name; @@ -140,5 +141,11 @@ public void setExternalIdentifiers(List externalIden this.externalIdentifiers = externalIdentifiers; } + public String getStatus() { + return status; + } + public void setStatus(String status) { + this.status = status; + } } diff --git a/orcid-web/src/main/java/org/orcid/frontend/web/controllers/PublicRecordController.java b/orcid-web/src/main/java/org/orcid/frontend/web/controllers/PublicRecordController.java index 757cc7a9508..ddb373b0ea4 100644 --- a/orcid-web/src/main/java/org/orcid/frontend/web/controllers/PublicRecordController.java +++ b/orcid-web/src/main/java/org/orcid/frontend/web/controllers/PublicRecordController.java @@ -325,6 +325,11 @@ RecordSummary getSummaryRecord(@PathVariable("orcid") String orcid) { // Check if the profile is deprecated or locked orcidSecurityManager.checkProfile(orcid); } catch (LockedException | DeactivatedException e) { + if (e instanceof LockedException) { + recordSummary.setStatus("locked"); + } else { + recordSummary.setStatus("deactivated"); + } recordSummary.setName(localeManager.resolveMessage("public_profile.deactivated.given_names") + " " + localeManager.resolveMessage("public_profile.deactivated.family_name")); return recordSummary; @@ -338,11 +343,13 @@ RecordSummary getSummaryRecord(@PathVariable("orcid") String orcid) { } if (isDeprecated) { + recordSummary.setStatus("deprecated"); recordSummary.setEmploymentAffiliations(null); recordSummary.setProfessionalActivities(null); recordSummary.setExternalIdentifiers(null); } else { recordSummary = getSummary(orcid); + recordSummary.setStatus("active"); } return recordSummary; diff --git a/orcid-web/src/test/java/org/orcid/frontend/web/controllers/PublicRecordControllerTest.java b/orcid-web/src/test/java/org/orcid/frontend/web/controllers/PublicRecordControllerTest.java index 329dc0d67fb..c091440316e 100644 --- a/orcid-web/src/test/java/org/orcid/frontend/web/controllers/PublicRecordControllerTest.java +++ b/orcid-web/src/test/java/org/orcid/frontend/web/controllers/PublicRecordControllerTest.java @@ -28,6 +28,7 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; @RunWith(OrcidJUnit4ClassRunner.class) @WebAppConfiguration @@ -43,6 +44,7 @@ public class PublicRecordControllerTest extends DBUnitTest { private String userOrcid = "0000-0000-0000-0003"; private String deprecatedUserOrcid = "0000-0000-0000-0004"; private String lockedUserOrcid = "0000-0000-0000-0006"; + private String deactivatedUserOrcid = "0000-0000-0000-0007"; @Resource PublicRecordController publicRecordController; @@ -51,11 +53,9 @@ public class PublicRecordControllerTest extends DBUnitTest { private LocaleManager localeManager; @Mock - //private HttpServletRequest request; private HttpServletRequest request = Mockito.mock(HttpServletRequest.class); @Mock - //private HttpServletRequest request; private HttpServletResponse response = Mockito.mock(HttpServletResponse.class); @Before @@ -138,6 +138,9 @@ public void testGetRecordSummary() { assertNotNull(record.getEmploymentAffiliations()); assertEquals(1, record.getEmploymentAffiliations().size()); assertEquals(1, record.getEmploymentAffiliationsCount()); + + assertEquals("An institution", record.getEmploymentAffiliations().get(0).getOrganizationName()); + assertEquals(String.valueOf(13), record.getExternalIdentifiers().get(0).getId()); assertEquals("http://ext-id/public_ref", record.getExternalIdentifiers().get(0).getUrl()); assertFalse(record.getExternalIdentifiers().get(0).isValidatedOrSelfAsserted()); @@ -159,5 +162,35 @@ public void testGetRecordSummary() { assertEquals(String.valueOf(13), record.getExternalIdentifiers().get(0).getId()); assertEquals("http://ext-id/public_ref", record.getExternalIdentifiers().get(0).getUrl()); assertFalse(record.getExternalIdentifiers().get(0).isValidatedOrSelfAsserted()); + + assertEquals("active", record.getStatus()); + } + + @Test + public void testGetRecordSummaryDeactivated() { + RecordSummary record = publicRecordController.getSummaryRecord(deactivatedUserOrcid); + + assertEquals("Given Names Deactivated Family Name Deactivated", record.getName()); + + assertEquals("deactivated", record.getStatus()); + } + + @Test + public void testGetRecordSummaryLocked() { + RecordSummary record = publicRecordController.getSummaryRecord(lockedUserOrcid); + + assertNotNull(record.getName()); + assertEquals("Given Names Deactivated Family Name Deactivated", record.getName()); + + assertEquals("locked", record.getStatus()); + } + + @Test + public void testGetRecordSummaryDeprecated() { + RecordSummary record = publicRecordController.getSummaryRecord(deprecatedUserOrcid); + + assertNull(record.getName()); + + assertEquals("deprecated", record.getStatus()); } }