@@ -32,7 +32,7 @@ class TaskDefinitionsApi < Grape::API
3232 requires :max_quality_pts , type : Integer , desc : 'A range for quality points when quality is assessed'
3333 optional :assessment_enabled , type : Boolean , desc : 'Enable or disable assessment'
3434 optional :overseer_image_id , type : Integer , desc : 'The id of the Docker image for overseer'
35- optional :moss_language , type : String , desc : 'The language to use for code similarity checks'
35+ optional :similarity_language , type : String , desc : 'The language to use for code similarity checks'
3636 optional :scorm_enabled , type : Boolean , desc : 'Whether SCORM assessment is enabled for this task'
3737 optional :scorm_allow_review , type : Boolean , desc : 'Whether a student is allowed to review their completed test attempts'
3838 optional :scorm_bypass_test , type : Boolean , desc : 'Whether a student is allowed to upload files before passing SCORM test'
@@ -69,7 +69,7 @@ class TaskDefinitionsApi < Grape::API
6969 :max_quality_pts ,
7070 :assessment_enabled ,
7171 :overseer_image_id ,
72- :moss_language ,
72+ :similarity_language ,
7373 :upload_requirements ,
7474 :unit_id
7575 )
@@ -125,7 +125,7 @@ class TaskDefinitionsApi < Grape::API
125125 optional :max_quality_pts , type : Integer , desc : 'A range for quality points when quality is assessed'
126126 optional :assessment_enabled , type : Boolean , desc : 'Enable or disable assessment'
127127 optional :overseer_image_id , type : Integer , desc : 'The id of the Docker image name for overseer'
128- optional :moss_language , type : String , desc : 'The language to use for code similarity checks'
128+ optional :similarity_language , type : String , desc : 'The language to use for code similarity checks'
129129 end
130130 end
131131 put '/units/:unit_id/task_definitions/:id' do
@@ -158,7 +158,7 @@ class TaskDefinitionsApi < Grape::API
158158 :max_quality_pts ,
159159 :assessment_enabled ,
160160 :overseer_image_id ,
161- :moss_language ,
161+ :similarity_language ,
162162 :upload_requirements
163163 )
164164
@@ -711,4 +711,45 @@ class TaskDefinitionsApi < Grape::API
711711 task_def . remove_scorm_data
712712 true
713713 end
714+
715+ desc 'Download the JPLAG report for a given task'
716+ params do
717+ requires :unit_id , type : Integer , desc : 'The unit to download JPLAG report for'
718+ requires :task_def_id , type : Integer , desc : 'The task definition to get the JPLAG report of'
719+ end
720+ get '/units/:unit_id/task_definitions/:task_def_id/jplag_report' do
721+ unit = Unit . find ( params [ :unit_id ] )
722+ task_def = unit . task_definitions . find ( params [ :task_def_id ] )
723+ unless authorise? current_user , unit , :download_jplag_report
724+ error! ( { error : 'Not authorised to download JPLAG reports of unit' } , 403 )
725+ end
726+ logger . debug "This is the has_jplag_report? #{ task_def . has_jplag_report? } "
727+ if task_def . has_jplag_report?
728+ path = FileHelper . task_jplag_report_path ( unit , task_def )
729+ header [ 'Content-Disposition' ] = "attachment; filename=#{ task_def . abbreviation } -jplag-report.jplag"
730+ else
731+ path = Rails . root . join ( "public/resources/FileNotFound.pdf" )
732+ content_type 'application/pdf'
733+ header [ 'Content-Disposition' ] = 'attachment; filename=FileNotFound.pdf'
734+ end
735+ header [ 'Access-Control-Expose-Headers' ] = 'Content-Disposition'
736+ content_type 'application/octet-stream'
737+ stream_file path
738+ end
739+
740+ desc 'Get hasJplagReport boolean for a given task'
741+ params do
742+ requires :unit_id , type : Integer , desc : 'The unit to get JPLAG report for'
743+ requires :task_def_id , type : Integer , desc : 'The task definition to get the JPLAG report of'
744+ end
745+ get '/units/:unit_id/task_definitions/:task_def_id/has_jplag_report' do
746+ unit = Unit . find ( params [ :unit_id ] )
747+ task_def = unit . task_definitions . find ( params [ :task_def_id ] )
748+
749+ unless authorise? current_user , unit , :download_jplag_report
750+ error! ( { error : 'Not authorised to download JPLAG reports of unit' } , 403 )
751+ end
752+
753+ task_def . has_jplag_report?
754+ end
714755end
0 commit comments