ReportController

class ReportController: Any

ReportController contains MVC controller functions to handle requests related with submission reports (for example, build report, submissions list, etc.).

Fields

Name Description
val mavenizedProjectsRootLocation: String
val uploadSubmissionsRootLocation: String
val gitSubmissionsRootLocation: String
val LOG: LoggerFactory.getLogger(this.javaClass.name)
val authorRepository: AuthorRepository
val projectGroupRepository: ProjectGroupRepository
val assignmentRepository: AssignmentRepository
val assignmentACLRepository: AssignmentACLRepository
val assignmentTestMethodRepository: AssignmentTestMethodRepository
val submissionRepository: SubmissionRepository
val gitSubmissionRepository: GitSubmissionRepository
val submissionReportRepository: SubmissionReportRepository
val buildReportRepository: BuildReportRepository
val assignmentTeacherFiles: AssignmentTeacherFiles
val buildReportBuilder: BuildReportBuilder
val gitClient: GitClient
val submissionService: SubmissionService
val storageService: StorageService
val zipService: ZipService
val templateEngine: TemplateEngine
val assignmentService: AssignmentService

Constructors

<init>

constructor(authorRepository: AuthorRepository, projectGroupRepository: ProjectGroupRepository, assignmentRepository: AssignmentRepository, assignmentACLRepository: AssignmentACLRepository, assignmentTestMethodRepository: AssignmentTestMethodRepository, submissionRepository: SubmissionRepository, gitSubmissionRepository: GitSubmissionRepository, submissionReportRepository: SubmissionReportRepository, buildReportRepository: BuildReportRepository, assignmentTeacherFiles: AssignmentTeacherFiles, buildReportBuilder: BuildReportBuilder, gitClient: GitClient, submissionService: SubmissionService, storageService: StorageService, zipService: ZipService, templateEngine: TemplateEngine, assignmentService: AssignmentService)

ReportController contains MVC controller functions to handle requests related with submission reports (for example, build report, submissions list, etc.).

Parameters

Name Description
authorRepository: AuthorRepository
projectGroupRepository: ProjectGroupRepository
assignmentRepository: AssignmentRepository
assignmentACLRepository: AssignmentACLRepository
assignmentTestMethodRepository: AssignmentTestMethodRepository
submissionRepository: SubmissionRepository
gitSubmissionRepository: GitSubmissionRepository
submissionReportRepository: SubmissionReportRepository
buildReportRepository: BuildReportRepository
assignmentTeacherFiles: AssignmentTeacherFiles
buildReportBuilder: BuildReportBuilder
gitClient: GitClient
submissionService: SubmissionService
storageService: StorageService
zipService: ZipService
templateEngine: TemplateEngine
assignmentService: AssignmentService

Methods

getSignaledGroupsOrSubmissions

fun getSignaledGroupsOrSubmissions(assignmentId: String, model: ModelMap, principal: Principal, request: HttpServletRequest): String

Controller that handles requests for the list of signalled groups in an Assignment. The signalled groups are groups of students that are failing exactly the same tests.

Parameters

Name Description
assignmentId: String

is a String identifying the relevant Assignment

model: ModelMap

is a ModelMap that will be populated with information to use in a View

principal: Principal

is a Principal representing the user making the request

request: HttpServletRequest

is an HttpServletRequest

ReturnValue

Name Description
String

A String with the name of the relevant View

getReport

fun getReport(assignmentId: String, model: ModelMap, principal: Principal, request: HttpServletRequest): String

Controller that handles requests for an Assignment's report (for example, list of submissions per student/group).

Parameters

Name Description
assignmentId: String

is a String identifying the relevant Assignment

model: ModelMap

is a ModelMap that will be populated with information to use in a View

principal: Principal

is a Principal representing the user making the request

request: HttpServletRequest

is an HttpServletRequest

ReturnValue

Name Description
String

A String with the name of the relevant View

getTestMatrix

fun getTestMatrix(assignmentId: String, model: ModelMap, principal: Principal, request: HttpServletRequest): String

Controller that handles requests for an Assignment's Test Matrix. The Test Matrix is a matrix where each row represents a student/group and each column represents an evaluation test. The intersection between lines and columns will tell us if each group has passed each specific test.

Parameters

Name Description
assignmentId: String

is a String identifying the relevant Assignment

model: ModelMap

is a ModelMap that will be populated with information to use in a View

principal: Principal

is a Principal representing the user making the request

request: HttpServletRequest

is an HttpServletRequest

ReturnValue

Name Description
String

A String with the name of the relevant View

getSubmissionReport

fun getSubmissionReport(submissionId: Long, model: ModelMap, principal: Principal, request: HttpServletRequest): String

Controller that handles requests for a Submission's "Build Report".

Parameters

Name Description
submissionId: Long

is a Long identifying the relevant Submission

model: ModelMap

is a ModelMap that will be populated with information to use in a View

principal: Principal

is a Principal representing the user making the request

request: HttpServletRequest

is an HttpServletRequest

ReturnValue

Name Description
String

is a String identifying the relevant View

downloadMavenProject

fun downloadMavenProject(submissionId: Long, principal: Principal, request: HttpServletRequest, response: HttpServletResponse): FileSystemResource

Controller that handles the download of a specific submission's code. The submission is downloaded in a format compatible with Maven.

Parameters

Name Description
submissionId: Long

is a Long, representing the Submission to download

principal: Principal

is a Principal representing the user making the request

request: HttpServletRequest

is a HttpServletRequest

response: HttpServletResponse

is a HttpServletResponse

ReturnValue

Name Description
FileSystemResource

A FileSystemResource containing a ZipFile

downloadOriginalProject

fun downloadOriginalProject(submissionId: Long, principal: Principal, request: HttpServletRequest, response: HttpServletResponse): FileSystemResource

Controller that handles the download of a specific submission's code. The submission is downloaded in it's original format.

Parameters

Name Description
submissionId: Long

is a Long, representing the Submission to download

principal: Principal

is a Principal representing the user making the request

request: HttpServletRequest

is an HttpServletRequest

response: HttpServletResponse

is an HttpServletResponse

ReturnValue

Name Description
FileSystemResource

A FileSystemResource containing a ZipFile

downloadOriginalAll

fun downloadOriginalAll(assignmentId: String, principal: Principal, response: HttpServletResponse): FileSystemResource

Controller that handles requests related with the download of ALL the students' submissions (code) for a certain Assignment. The submissions are downloaded in their original format.

Parameters

Name Description
assignmentId: String

is a String identifying the relevant Assignment

principal: Principal

is a Principal representing the user making the request

response: HttpServletResponse

is an HttpServletResponse

ReturnValue

Name Description
FileSystemResource

A FileSystemResource containing a ZipFile

downloadMavenizedAll

fun downloadMavenizedAll(assignmentId: String, principal: Principal, response: HttpServletResponse): FileSystemResource

Controller that handles requests related with the download of ALL the students' submissions (code) for a certain Assignment. The submissions are downloaded in a format compatible with Maven.

Parameters

Name Description
assignmentId: String

is a String identifying the relevant Assignment

principal: Principal

is a Principal representing the user making the request

response: HttpServletResponse

is an HttpServletResponse

ReturnValue

Name Description
FileSystemResource

A FileSystemResource containing a ZipFile

getMySubmissions

fun getMySubmissions(assignmentId: String, model: ModelMap, principal: Principal, request: HttpServletRequest): String

Controller that handles requests for the submissions of the current user in a certain Assigment.

Parameters

Name Description
assignmentId: String

is a String identifying the relevant assignment

model: ModelMap

is a ModelMap that will be populated with information to use in a View

principal: Principal

is a Principal representing the user making the request. This is the user whose submissions will be returned.

request: HttpServletRequest

is an HttpServletRequest

ReturnValue

Name Description
String

A String with the name of the relevant View

getSubmissions

fun getSubmissions(assignmentId: String, groupId: Long, model: ModelMap, principal: Principal, request: HttpServletRequest): String

Controller that handles requests related with listing Submissions of a certain Assignment and ProjectGroup.

Parameters

Name Description
assignmentId: String

is a String identifying the relevant Assignment

groupId: Long

is a String identifying the relevant ProjectGroup

model: ModelMap

is a ModelMap that will be populated with information to use in a View

principal: Principal

is a Principal representing the user making the request

request: HttpServletRequest

is an HttpServletRequest

ReturnValue

Name Description
String

A String with the name of the relevant View

exportCSV

fun exportCSV(assignmentId: String, includeEllapsed: Boolean, principal: Principal): ResponseEntity<String>

Controller that handles the exportation of an Assignment's submission results to a CSV file.

Parameters

Name Description
assignmentId: String

is a String, identifying the relevant Assignment

includeEllapsed: Boolean
principal: Principal

ReturnValue

Name Description
ResponseEntity<String>

A ResponseEntity

getLeaderboard

fun getLeaderboard(assignmentId: String, model: ModelMap, principal: Principal, request: HttpServletRequest): String

Controller that handles requests for an Assignment's Leaderboard.

Parameters

Name Description
assignmentId: String

is a String identifying the relevant Assignment

model: ModelMap

is a ModelMap that will be populated with information to use in a View

principal: Principal

is a Principal representing the user making the request

request: HttpServletRequest

is an HttpServletRequest

ReturnValue

Name Description
String

A String with the name of the relevant View

migrate

fun migrate(idx1: Long, idx2: Long)

Parameters

Name Description
idx1: Long
idx2: Long

ReturnValue

Name Description
Unit