Move CodeOcean::FileNameValidator
This commit is contained in:
@ -4,16 +4,6 @@ require File.expand_path('../../uploaders/file_uploader', __dir__)
|
|||||||
require File.expand_path('../../../lib/active_model/validations/boolean_presence_validator', __dir__)
|
require File.expand_path('../../../lib/active_model/validations/boolean_presence_validator', __dir__)
|
||||||
|
|
||||||
module CodeOcean
|
module CodeOcean
|
||||||
class FileNameValidator < ActiveModel::Validator
|
|
||||||
def validate(record)
|
|
||||||
existing_files = File.where(name: record.name, path: record.path, file_type_id: record.file_type_id,
|
|
||||||
context_id: record.context_id, context_type: record.context_type).to_a
|
|
||||||
if !existing_files.empty? && (!record.context.is_a?(Exercise) || record.context.new_record?)
|
|
||||||
record.errors[:base] << 'Duplicate'
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
class File < ApplicationRecord
|
class File < ApplicationRecord
|
||||||
include DefaultValues
|
include DefaultValues
|
||||||
|
|
||||||
|
13
app/validators/code_ocean/file_name_validator.rb
Normal file
13
app/validators/code_ocean/file_name_validator.rb
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
module CodeOcean
|
||||||
|
class FileNameValidator < ActiveModel::Validator
|
||||||
|
def validate(record)
|
||||||
|
existing_files = File.where(name: record.name, path: record.path, file_type_id: record.file_type_id,
|
||||||
|
context_id: record.context_id, context_type: record.context_type).to_a
|
||||||
|
if !existing_files.empty? && (!record.context.is_a?(Exercise) || record.context.new_record?)
|
||||||
|
record.errors[:base] << 'Duplicate'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
Reference in New Issue
Block a user