use of org.pmiops.workbench.moodle.ApiException in project workbench by all-of-us.
the class UserServiceTest method testSyncComplianceTrainingStatusBadgeNotFoundV2.
@Test
public void testSyncComplianceTrainingStatusBadgeNotFoundV2() throws ApiException {
// We should propagate a NOT_FOUND exception from the compliance service.
when(mockComplianceService.getUserBadgesByBadgeName(USERNAME)).thenThrow(new org.pmiops.workbench.moodle.ApiException(HttpStatus.NOT_FOUND.value(), "user not found"));
assertThrows(NotFoundException.class, () -> userService.syncComplianceTrainingStatusV2());
}
use of org.pmiops.workbench.moodle.ApiException in project workbench by all-of-us.
the class ComplianceServiceImpl method getUserBadgesByBadgeName.
/**
* Returns a map of Moodle badge names to Moodle badge details for the given Moodle user email.
*
* @param email The research-aou.org email for the user
* @return A map of badge name to badge details.
* @throws ApiException if the Moodle API call returns an error because the email is not yet
* registered in Moodle.
*/
@Override
public Map<BadgeName, BadgeDetailsV2> getUserBadgesByBadgeName(String email) throws ApiException {
UserBadgeResponseV2 response = moodleApiProvider.get().getMoodleBadgeV2(RESPONSE_FORMAT, getToken(), email);
if (response.getException() != null && response.getException().equals(MOODLE_EXCEPTION)) {
logger.warning(response.getMessage());
if (response.getErrorcode().equals(MOODLE_USER_NOT_ALLOWED_ERROR_CODE)) {
throw new ApiException(HttpStatus.NOT_FOUND.value(), response.getMessage());
} else {
throw new ApiException(response.getMessage());
}
}
Map<BadgeName, BadgeDetailsV2> userBadgesByName = new HashMap<>();
// See RW-7438 for details.
if (response.getDua() != null) {
userBadgesByName.put(BadgeName.CONTROLLED_TIER_TRAINING, response.getDua());
}
if (response.getRet() != null) {
userBadgesByName.put(BadgeName.REGISTERED_TIER_TRAINING, response.getRet());
}
return userBadgesByName;
}
Aggregations