send attachment keys using ActiveResource

This commit is contained in:
bilal
2020-06-06 01:18:48 +02:00
parent 21e8933471
commit f2283782e8
2 changed files with 34 additions and 18 deletions

View File

@@ -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

View File

@@ -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