use attachment key for BrayniacAI API payload
This commit is contained in:
@@ -8,28 +8,27 @@ class MatchAppearanceReleasesJob < ApplicationJob
|
|||||||
|
|
||||||
return if filtered_attachments_object[:keys].blank?
|
return if filtered_attachments_object[:keys].blank?
|
||||||
|
|
||||||
matching_request = MatchingRequest.create project: project, attachments: filtered_attachments_object[:signed_keys]
|
matching_request = MatchingRequest.create project: project, attachments: filtered_attachments_object[:signed_ids]
|
||||||
|
|
||||||
payload = { request_id: matching_request.id, bucket: aws_bucket_name, files: filtered_attachments_object[: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
|
response = BrayniacAI::QrMatching.create! payload
|
||||||
|
matches = response.attributes[:matches] || []
|
||||||
matches = response[:matches] || []
|
key_signed_id_hash = Hash[filtered_attachments_object[:keys].zip(filtered_attachments_object[:signed_ids])]
|
||||||
|
handle_matches matches, project, key_signed_id_hash
|
||||||
handle_matches matches, project
|
|
||||||
matching_request.destroy
|
matching_request.destroy
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def handle_matches(matches, project)
|
def handle_matches(matches, project, key_signed_id_hash)
|
||||||
matches.each do |match|
|
matches.each do |qr_matching_match|
|
||||||
contract = match[:contracts].blank? ? nil : match[:contracts].first
|
match = qr_matching_match.attributes
|
||||||
headshot = match[:headshots].blank? ? nil : match[:headshots].first
|
contract_key = match[:contracts].blank? ? nil : match[:contracts].first
|
||||||
|
headshot_key = match[:headshots].blank? ? nil : match[:headshots].first
|
||||||
identifier = match[:identifier]
|
identifier = match[:identifier]
|
||||||
|
|
||||||
|
contract = key_signed_id_hash[contract_key]
|
||||||
|
headshot = key_signed_id_hash[headshot_key]
|
||||||
|
|
||||||
next if contract.nil? && headshot.nil?
|
next if contract.nil? && headshot.nil?
|
||||||
|
|
||||||
identified_release = identifier.blank? ? nil : AppearanceRelease.find_by(identifier: identifier)
|
identified_release = identifier.blank? ? nil : AppearanceRelease.find_by(identifier: identifier)
|
||||||
@@ -80,8 +79,8 @@ class MatchAppearanceReleasesJob < ApplicationJob
|
|||||||
|
|
||||||
def filter_attachments(attachments)
|
def filter_attachments(attachments)
|
||||||
filtered_attachments_keys = []
|
filtered_attachments_keys = []
|
||||||
filtered_attachments_names = []
|
|
||||||
filtered_attachments_signed_ids = []
|
filtered_attachments_signed_ids = []
|
||||||
|
|
||||||
attachments.each do |attachment|
|
attachments.each do |attachment|
|
||||||
blob = ActiveStorage::Blob.find_signed attachment
|
blob = ActiveStorage::Blob.find_signed attachment
|
||||||
next if blob.nil?
|
next if blob.nil?
|
||||||
@@ -90,13 +89,12 @@ class MatchAppearanceReleasesJob < ApplicationJob
|
|||||||
next unless blob.image? || extension == 'pdf'
|
next unless blob.image? || extension == 'pdf'
|
||||||
|
|
||||||
filtered_attachments_keys << blob.key
|
filtered_attachments_keys << blob.key
|
||||||
filtered_attachments_names << blob.filename.to_s
|
|
||||||
filtered_attachments_signed_ids << attachment
|
filtered_attachments_signed_ids << attachment
|
||||||
end
|
end
|
||||||
|
|
||||||
{
|
{
|
||||||
keys: filtered_attachments_keys,
|
keys: filtered_attachments_keys,
|
||||||
names: filtered_attachments_names,
|
signed_ids: filtered_attachments_signed_ids
|
||||||
signed_keys: filtered_attachments_signed_ids
|
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user