Search in sources :

Example 1 with ApiException

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());
}
Also used : ApiException(org.pmiops.workbench.moodle.ApiException) DataJpaTest(org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest) Test(org.junit.jupiter.api.Test)

Example 2 with ApiException

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;
}
Also used : UserBadgeResponseV2(org.pmiops.workbench.moodle.model.UserBadgeResponseV2) HashMap(java.util.HashMap) BadgeDetailsV2(org.pmiops.workbench.moodle.model.BadgeDetailsV2) ApiException(org.pmiops.workbench.moodle.ApiException)

Aggregations

ApiException (org.pmiops.workbench.moodle.ApiException)2 HashMap (java.util.HashMap)1 Test (org.junit.jupiter.api.Test)1 BadgeDetailsV2 (org.pmiops.workbench.moodle.model.BadgeDetailsV2)1 UserBadgeResponseV2 (org.pmiops.workbench.moodle.model.UserBadgeResponseV2)1 DataJpaTest (org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest)1