From f2283782e83a596424b8f71d9927ccfef14298dc Mon Sep 17 00:00:00 2001 From: bilal Date: Sat, 6 Jun 2020 01:18:48 +0200 Subject: [PATCH] send attachment keys using ActiveResource --- .../appearance_release_imports_controller.rb | 15 +------- app/jobs/match_appearance_releases_job.rb | 37 ++++++++++++++++--- 2 files changed, 34 insertions(+), 18 deletions(-) diff --git a/app/controllers/appearance_release_imports_controller.rb b/app/controllers/appearance_release_imports_controller.rb index 3dee19b..064e21d 100644 --- a/app/controllers/appearance_release_imports_controller.rb +++ b/app/controllers/appearance_release_imports_controller.rb @@ -15,8 +15,8 @@ class AppearanceReleaseImportsController < ApplicationController alert_message = t 'appearance_releases.create.no_attachments' redirect_to [@project, :appearance_releases], alert: alert_message else - filtered_attachments = filter_attachments attachments - MatchAppearanceReleasesJob.perform_later(@project, filtered_attachments) + # filtered_attachments = filter_attachments attachments + MatchAppearanceReleasesJob.perform_later(@project, attachments) notice_message = t 'appearance_releases.create.matching_started' redirect_to [@project, :appearance_releases], notice: notice_message end @@ -36,17 +36,6 @@ class AppearanceReleaseImportsController < ApplicationController params.require(:attachments) end - def filter_attachments(attachments) - filtered_attachments = [] - attachments.each do |attachment| - blob = ActiveStorage::Blob.find_signed attachment - next if blob.nil? - - extension = blob.filename.extension - filtered_attachments << attachment if blob.image? || extension == 'pdf' - end - end - def acceptable_extensions AppearanceRelease.acceptable_import_file_extensions end diff --git a/app/jobs/match_appearance_releases_job.rb b/app/jobs/match_appearance_releases_job.rb index e087277..a47cd12 100644 --- a/app/jobs/match_appearance_releases_job.rb +++ b/app/jobs/match_appearance_releases_job.rb @@ -4,12 +4,17 @@ class MatchAppearanceReleasesJob < ApplicationJob queue_as :default def perform(project, attachments) - matching_request = MatchingRequest.create project: project, attachments: attachments + filtered_attachments_object = filter_attachments attachments - payload = { request_id: matching_request.id, bucket: aws_bucket_name, files: attachments} - response = BrayniacAI::AppearanceReleaseMatching.match_attachments payload - # BrayniacAI::QrMatching.enable_logging - # response = BrayniacAI::QrMatching.create! payload + return if filtered_attachments_object[:keys].blank? + + matching_request = MatchingRequest.create project: project, attachments: filtered_attachments_object[:signed_keys] + + payload = { request_id: matching_request.id, bucket: aws_bucket_name, files: filtered_attachments_object[:keys]} + + # response = BrayniacAI::AppearanceReleaseMatching.match_attachments payload + BrayniacAI::QrMatching.enable_logging + response = BrayniacAI::QrMatching.create! payload matches = response[:matches] || [] @@ -72,4 +77,26 @@ class MatchAppearanceReleasesJob < ApplicationJob def aws_bucket_name ENV.fetch 'AWS_BUCKET' end + + def filter_attachments(attachments) + filtered_attachments_keys = [] + filtered_attachments_names = [] + filtered_attachments_signed_ids = [] + attachments.each do |attachment| + blob = ActiveStorage::Blob.find_signed attachment + next if blob.nil? + + extension = blob.filename.extension + next unless blob.image? || extension == 'pdf' + + filtered_attachments_keys << blob.key + filtered_attachments_names << blob.filename.to_s + filtered_attachments_signed_ids << attachment + end + { + keys: filtered_attachments_keys, + names: filtered_attachments_names, + signed_keys: filtered_attachments_signed_ids + } + end end