specs for services

This commit is contained in:
Karol
2019-12-09 20:35:49 +01:00
parent c89ee6c102
commit 46e7853465
16 changed files with 1029 additions and 13 deletions

View File

@@ -12,7 +12,7 @@ module ProformaService
importer = Proforma::Importer.new(@zip)
@task = importer.perform
exercise = Exercise.find_by(uuid: @task.uuid)
exercise = base_exercise
exercise_files = exercise&.files&.to_a
exercise = ConvertTaskToExercise.call(task: @task, user: @user, exercise: exercise)
@@ -26,6 +26,17 @@ module ProformaService
private
def base_exercise
exercise = Exercise.find_by(uuid: @task.uuid)
if exercise
return exercise if ExercisePolicy.new(@user, exercise).update?
return Exercise.new(uuid: SecureRandom.uuid, unpublished: true)
end
Exercise.new(uuid: @task.uuid || SecureRandom.uuid, unpublished: true)
end
def import_multi
Zip::File.open(@zip.path) do |zip_file|
zip_files = zip_file.filter { |entry| entry.name.match?(/\.zip$/) }