1. OrcidServiceCheckDeployController.java: [NEW] Controller added and
a. "hello()" method (@RequestMapping(value = {"", "/health_check"}, method = RequestMethod.GET)) which just prints and returns a greeting message.
b. "checkEverything()" method @RequestMapping(value = "/health_check/advanced", method = RequestMethod.GET) only accessible by PORTAL ADMINS which checks connection with db and prints properties.
2. ResultIdAndWork.java & Work.java: Added field "dashboard" (in ResultInWork class, default value is "production_explpre") and its getters and setters.
3. UserTokens.java: Added field "creationDate" and its getters and setters.
4. UserTokensService.java: Call setCreationDate() method with current Date in "saveUserTokens()" method.
5. WorkController.java: Call setDashboard() method with dashboard value from parameter of type ResultIdAndWork in "saveWork()" method.
6. update_db.js: Script with methods "setUserTokenCreationDate()" (use date of first work for this orcid) and "setDashboardInWorks()" (set all to "production_explore").
1, WorkController.java: In method "updateWork()" (/orcid/work/update/{putCode}), if ORCID does not return HttpStatus.OK,
return AuthorizationServiceException (for HttpStatus.UNAUTHORIZED), ConflictException (for HttpStatus.CONFLICT) or Exception instead of null.
1. RecordController.java: Comment file RecordController.java, since it is not used by portal (to be deleted).
2. WorkController.java: Use "apiUrl" property for requests to ORCID API (not string set in the code).
1. pom.xml: Change version from 2.0.0 to 1.0.0 (not yet released and was set to 2.0.0 as a false copy-paste).
2. UserTokensController.java & WorkController.java: Added @PreAuthorize("isAuthenticated()") in class (some methods were missing that).
3. UserTokensController.java:
a. Change "public String saveUserTokens(...)" to "public SingleValueWrapperResponse<Boolean> saveUserTokens(...)" - Do not return access token!
b. Comment "decryptToken()" (/local/tokens/decrypt) and "encryptToken()" (/local/tokens/encrypt) methods - used for testing.
1. orcidservice.properties: Added properties "apiURL", "tokenURL", "clientId", "clientSecret" for ORCID API.
2. log4j.properties: Added configuration for ORCID log file "uoa-orcid-service-orcid.log".
3. UoaOrcidServiceApplication.java: Added "OrcidConfig.class" in "@EnableConfigurationProperties".
4. SimpleErrorController.java: If body.path.contains("/uoa-orcid-service/orcid"), log error in ORCID log file too.
5. UserTokensService.java: Added method "getEncryptedUserTokensByAai()".
6. UserTokensController.java:
a. Added ORCID log file for responses by ORCID API.
b. Added @Autowired OrcidConfig for getting ORICD token url, client and secret from properties.
c. Added method "getUserOrcidId()" (/local/orcidId)
d. Added method "getPersonalDetailsFromOrcid()" (/orcid/personal-details)
e. Renamed "/orcid/tokens/decrypt" to "/local/tokens/decrypt" & "/orcid/tokens/encrypt" to "/local/tokens/encrypt".
7. Work.java: Added field "updateDate".
8. WorkDAO.java & MongoDBWorkDAO.java: Added methods "List<Work> findByOrcidOrderByCreationDateDesc(String Orcid);" and "Work findByPutCode(String putCode);".
9. WorkService.java:
a. Added method "getLocalWorkByPutCode()".
b. Method "getLocalWorks()" returns works ordered by most recent creation date.
10. WorkController.java:
a. Added ORCID log file for responses by ORCID API.
b. Added @Autowired OrcidConfig for getting ORICD token url, client and secret from properties.
c. Added "charset=UTF-8" in all Content-Type request headers.
d. Renamed "/orcid/put-code" to "/local/put-code".
e. Added method "List<List<Work>> getLocalWorks(@RequestBody String[][] pids)" (/local/works).
f. Added method "List<Work> getMyLocalWorks()" (/local/works).
g. Added method "updateWork()" (/orcid/work/update/{putCode}).
h. Added method "getWorksByPutCodes()" (/orcid/works).