Sha256: 9e99569d15d1f6b0dccf95ebf01a0a73fbe2d541c10df777074bb7780dcb2d74
Contents?: true
Size: 812 Bytes
Versions: 1
Compression:
Stored size: 812 Bytes
Contents
module Boxroom::Search class FilesAndFolders < ::Trailblazer::Operation step Trailblazer::Operation::Contract::Build(constant: Boxroom::Search::Contract::FilesAndFolders) step Trailblazer::Operation::Contract::Validate() step :search_tree def search_tree(options, params:, **) options['files'], options['folders'] = [], [] folder = Boxroom::Folder.find(params[:folder_id]) search_folder(params[:term], folder, options) end def search_folder(term, folder, options) options['folders'] << folder if folder.name.downcase.include? term.downcase options['files'] += folder.user_files.where('lower(attachment_file_name) LIKE ?', "%#{term.downcase}%").all.to_a folder.children.each do |f| search_folder(term, f, options) end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
boxroom-0.0.2 | app/concepts/boxroom/search/operations/files_and_folders.rb |