feat: configure lti exam providers (#356)

Allows setting a course exam provider to integrations managed by edx-exams. This option is gated by the CourseWaffleFlag course_apps.exams_ida in edx-platform.
This commit is contained in:
Zachary Hancock
2022-10-11 11:54:33 -04:00
committed by GitHub
parent 7954baf6bd
commit f54dc17788
8 changed files with 421 additions and 167 deletions

View File

@@ -0,0 +1,34 @@
import { getAuthenticatedHttpClient } from '@edx/frontend-platform/auth';
import { getConfig } from '@edx/frontend-platform';
class ExamsApiService {
static isAvailable() {
return !!this.getExamsBaseUrl();
}
static getExamsBaseUrl() {
return getConfig().EXAMS_BASE_URL;
}
static getExamConfigurationUrl(courseId) {
return `${ExamsApiService.getExamsBaseUrl()}/api/v1/configs/course_id/${courseId}`;
}
static getAvailableProviders() {
const apiClient = getAuthenticatedHttpClient();
const providersUrl = `${ExamsApiService.getExamsBaseUrl()}/api/v1/providers`;
return apiClient.get(providersUrl);
}
static getCourseExamConfiguration(courseId) {
const apiClient = getAuthenticatedHttpClient();
return apiClient.get(this.getExamConfigurationUrl(courseId));
}
static saveCourseExamConfiguration(courseId, dataToSave) {
const apiClient = getAuthenticatedHttpClient();
return apiClient.patch(this.getExamConfigurationUrl(courseId), dataToSave);
}
}
export default ExamsApiService;