class UploadController: Any
Fields
Name | Description |
---|---|
val gitSubmissionsRootLocation: String
|
|
val mavenizedProjectsRootLocation: String
|
|
val deleteOriginalProjectFolder: Boolean
|
|
val LOG: LoggerFactory.getLogger(this.javaClass.name)
|
|
val storageService: StorageService
|
|
val buildWorker: BuildWorker
|
|
val authorRepository: AuthorRepository
|
|
val projectGroupRepository: ProjectGroupRepository
|
|
val submissionRepository: SubmissionRepository
|
|
val gitSubmissionRepository: GitSubmissionRepository
|
|
val submissionReportRepository: SubmissionReportRepository
|
|
val assignmentRepository: AssignmentRepository
|
|
val assignmentACLRepository: AssignmentACLRepository
|
|
val assigneeRepository: AssigneeRepository
|
|
val asyncExecutor: Executor
|
|
val assignmentTeacherFiles: AssignmentTeacherFiles
|
|
val gitClient: GitClient
|
|
val gitSubmissionService: GitSubmissionService
|
|
val submissionService: SubmissionService
|
|
val zipService: ZipService
|
Constructors
<init>
constructor(storageService: StorageService, buildWorker: BuildWorker, authorRepository: AuthorRepository, projectGroupRepository: ProjectGroupRepository, submissionRepository: SubmissionRepository, gitSubmissionRepository: GitSubmissionRepository, submissionReportRepository: SubmissionReportRepository, assignmentRepository: AssignmentRepository, assignmentACLRepository: AssignmentACLRepository, assigneeRepository: AssigneeRepository, asyncExecutor: Executor, assignmentTeacherFiles: AssignmentTeacherFiles, gitClient: GitClient, gitSubmissionService: GitSubmissionService, submissionService: SubmissionService, zipService: ZipService)
UploadController is an MVC controller class to handle requests related with the upload of submissions.
Parameters
Name | Description |
---|---|
storageService: StorageService
|
|
buildWorker: BuildWorker
|
|
authorRepository: AuthorRepository
|
|
projectGroupRepository: ProjectGroupRepository
|
|
submissionRepository: SubmissionRepository
|
|
gitSubmissionRepository: GitSubmissionRepository
|
|
submissionReportRepository: SubmissionReportRepository
|
|
assignmentRepository: AssignmentRepository
|
|
assignmentACLRepository: AssignmentACLRepository
|
|
assigneeRepository: AssigneeRepository
|
|
asyncExecutor: Executor
|
|
assignmentTeacherFiles: AssignmentTeacherFiles
|
|
gitClient: GitClient
|
|
gitSubmissionService: GitSubmissionService
|
|
submissionService: SubmissionService
|
|
zipService: ZipService
|
Methods
getUploadForm
fun getUploadForm(model: ModelMap, principal: Principal, request: HttpServletRequest): String
Controller that handles related with the base URL.
If the principal can only access one Assignment, then that assignment's upload form will be displayed. Otherwise, a list of assignments will be displayed.
Parameters
ReturnValue
Name | Description |
---|---|
String
|
A String identifying the relevant View |
getUploadForm
fun getUploadForm(model: ModelMap, principal: Principal, assignmentId: String, request: HttpServletRequest): String
Controller that handles requests related with the Assignment's upload page.
Parameters
Name | Description |
---|---|
model: ModelMap
|
is a ModelMap that will be populated with the information to use in a View |
principal: Principal
|
is a Principal representing the user making the request |
assignmentId: String
|
is a String, identifying the relevant Assigment |
request: HttpServletRequest
|
is an HttpServletRequest |
ReturnValue
Name | Description |
---|---|
String
|
A String identifying the relevant View |
upload
fun upload(uploadForm: UploadForm, bindingResult: BindingResult, file: MultipartFile, principal: Principal, request: HttpServletRequest): ResponseEntity
Controller that handles requests for the actual file upload that delivers/submits the student's code.
Parameters
Name | Description |
---|---|
uploadForm: UploadForm
|
is an Uploadform |
bindingResult: BindingResult
|
is a BindingResult |
file: MultipartFile
|
is a MultipartFile |
principal: Principal
|
is a Principal representing the user making the request |
request: HttpServletRequest
|
is an HttpServletRequest |
ReturnValue
Name | Description |
---|---|
ResponseEntity
|
a ResponseEntity |
upload
fun upload(gitSubmissionId: String, principal: Principal, request: HttpServletRequest): ResponseEntity
Controller that handles requests for the generation of a GitSubmission's build report.
Parameters
Name | Description |
---|---|
gitSubmissionId: String
|
is a String identifying a GitSubmission |
principal: Principal
|
is a Principal representing the user making the request |
request: HttpServletRequest
|
is a HttpServletRequest |
ReturnValue
Name | Description |
---|---|
ResponseEntity
|
a ResponseEntity |
rebuild
fun rebuild(submissionId: Long, principal: Principal): String
Controller that handles requests for the Submission's rebuild process. The rebuild process is a process where by a student's submission gets compiled and evaluated again. It can be useful, for example, in situations where an error was detected in the teacher's tests and the teacher wants to apply corrected tests to the student's submission.
Parameters
Name | Description |
---|---|
submissionId: Long
|
is a Long, identifying the student's Submission |
principal: Principal
|
is a Principal representing the user making the request |
ReturnValue
Name | Description |
---|---|
String
|
a String identifying the relevant View |
rebuildFull
fun rebuildFull(submissionId: Long, principal: Principal): String
Parameters
Name | Description |
---|---|
submissionId: Long
|
|
principal: Principal
|
ReturnValue
Name | Description |
---|---|
String
|
markAsFinal
fun markAsFinal(submissionId: Long, redirectToSubmissionsList: Boolean, principal: Principal): String
Controller that handles requests for marking a Submission as "final". Since, by design, students' can make multiple submissions in DP, marking a submission as "final" is the way for the teacher to indicate that it's the one that shall be considered when exporting the submissions' data (e.g. for grading purposes).
Note that only one submission per ProjectGroup can be marked as final. This means that, when a certain submission is marked as final, any previously "finalized" submission by the same group will not be final anymore.
Parameters
Name | Description |
---|---|
submissionId: Long
|
is a Long, identifying the student's Submission |
redirectToSubmissionsList: Boolean
|
is a Boolean. If true, then after the marking process is done, the user will be redirected to the group's submissions list. Otherwise, the redirection will be done to the the final submission's build report. |
principal: Principal
|
is a Principal representing the user making the request |
ReturnValue
Name | Description |
---|---|
String
|
a String identifying the relevant View |
cleanup
fun cleanup(assignmentId: String, request: HttpServletRequest): String
Parameters
Name | Description |
---|---|
assignmentId: String
|
|
request: HttpServletRequest
|
ReturnValue
Name | Description |
---|---|
String
|
setupStudentSubmissionUsingGitRepository
fun setupStudentSubmissionUsingGitRepository(assignmentId: String, gitRepositoryUrl: String?, model: ModelMap, principal: Principal, request: HttpServletRequest): String
Controller that handles requests for connecting a student's GitHub repository with an Assignment available in DP.
This process works like a two step wizard. This is the first part. The second part is in "/student/setup-git-2".
Parameters
Name | Description |
---|---|
assignmentId: String
|
is a String, identifying the relevant Assignment |
gitRepositoryUrl: String?
|
is a String with the student's GitHub repository URL |
model: ModelMap
|
is a ModelMap that will be populated with the information to use in a View |
principal: Principal
|
is a Principal representing the user making the request |
request: HttpServletRequest
|
ReturnValue
Name | Description |
---|---|
String
|
A String identifying the relevant View |
connectAssignmentToGitRepository
fun connectAssignmentToGitRepository(gitSubmissionId: String, redirectAttributes: RedirectAttributes, model: ModelMap, principal: Principal): String
Controller that handles requests for connecting a student's GitHub repository with DP.
This process works like a two step wizard. This is the second part. The first part is in "/student/setup-git".
Parameters
ReturnValue
Name | Description |
---|---|
String
|
A String identifying the relevant View |
refreshAssignmentGitRepository
fun refreshAssignmentGitRepository(submissionId: String, principal: Principal): ResponseEntity
Controller that handles requests for the creation of a new submission via Git, by refreshing the contents that are in the respective student's repository.
Parameters
Name | Description |
---|---|
submissionId: String
|
is a String identifying the student's last Git submission |
principal: Principal
|
is a Principal representing the user making the requets |
ReturnValue
Name | Description |
---|---|
ResponseEntity
|
a ResponseEntity |
disconnectAssignmentToGitRepository
fun disconnectAssignmentToGitRepository(gitSubmissionId: String, redirectAttributes: RedirectAttributes, principal: Principal): String
Controller that handles requests for the resetting of the connection between a GitHub and an Assignment.
Parameters
Name | Description |
---|---|
gitSubmissionId: String
|
is a String identifying a GitSubmission |
redirectAttributes: RedirectAttributes
|
is a RedirectAttributes |
principal: Principal
|
is Principal representing the user making the request |
ReturnValue
Name | Description |
---|---|
String
|
a String with the name of the relevant View |
deleteSubmission
fun deleteSubmission(submissionId: Long, principal: Principal): String
Controller that handles requests for the deletion of a Submission.
Parameters
Name | Description |
---|---|
submissionId: Long
|
is a Long, identifying the Submission to delete |
principal: Principal
|
is a Principal representing the user making the request |
ReturnValue
Name | Description |
---|---|
String
|
a String with the name of the relevant View |
handleStorageError
fun handleStorageError(e: StorageException): ResponseEntity
Parameters
Name | Description |
---|---|
e: StorageException
|
ReturnValue
Name | Description |
---|---|
ResponseEntity
|
handleStorageError
fun handleStorageError(e: InvalidProjectStructureException): ResponseEntity
Parameters
Name | Description |
---|---|
e: InvalidProjectStructureException
|
ReturnValue
Name | Description |
---|---|
ResponseEntity
|
UploadController is an MVC controller class to handle requests related with the upload of submissions.