Class: Scan::Library::CreateModelFromPathJob

Inherits:
ApplicationJob
  • Object
show all
Defined in:
app/jobs/scan/library/create_model_from_path_job.rb

Instance Method Summary collapse

Instance Method Details

#perform(library_id, path, include_all_subfolders: false) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'app/jobs/scan/library/create_model_from_path_job.rb', line 5

def perform(library_id, path, include_all_subfolders: false)
  library = Library.find(library_id)
  return if library.nil?
  new_model_properties = {
    # Initial best guess at name, this might be overwritten later by path parser
    name: File.basename(path).humanize.tr("+", " ").careful_titleize,
    tag_list: Array(SiteSettings.model_tags_auto_tag_new)
  }
  model = library.models.create_with(new_model_properties).find_or_create_by(path: path.trim_path_separators)
  if model.valid?
    model.add_new_files_later(include_all_subfolders: include_all_subfolders)
  else
    Rails.logger.error(model.inspect)
    Rails.logger.error(model.errors.full_messages.inspect)
  end
end