in intellij-plugin/educational-core/src/com/jetbrains/edu/learning/coursera/CourseraTaskChecker.kt [50:83]
override fun check(project: Project, task: Task, indicator: ProgressIndicator): CheckResult {
val course = task.course as CourseraCourse
if (course.submitManually) {
return CheckResult(CheckStatus.Unchecked, EduCoreBundle.message("coursera.local.tests.passed", getLinkToSubmission(task)))
}
val courseraSettings = CourseraSettings.getInstance()
var askedForCredentials = false
var token = getToken()
if (courseraSettings.email.isEmpty() || token == null) {
askToEnterCredentials(task)
askedForCredentials = true
token = getToken()
if (courseraSettings.email.isEmpty() || token == null) {
return checkWithoutCredentials
}
}
return try {
val response = postSubmission(createSubmissionJson(project, task, courseraSettings, token))
var responseCode = response.code
if (responseCode != HttpStatus.SC_CREATED && !askedForCredentials) {
askToEnterCredentials(task, createCheckResult(responseCode, task).message)
token = getToken()
if (token != null) {
responseCode = postSubmission(createSubmissionJson(project, task, courseraSettings, token)).code
}
}
createCheckResult(responseCode, task)
}
catch (e: Exception) {
Logger.getInstance(CourseraTaskChecker::class.java).warn(e)
CheckResult.CONNECTION_FAILED
}
}