5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
# File 'app/interactors/spree_cm_commissioner/id_card_image_updater.rb', line 5
def call
presigned_url = SpreeCmCommissioner::S3UrlGenerator.s3_presigned_url(context.image_url)
response = Faraday.get(presigned_url)
if response.success?
id_card = context.id_card
io = StringIO.new(response.body)
filename = File.basename(context.image_url)
id_card_image = id_card_image(id_card)
id_card_image.attachment.attach(io: io, filename: filename)
if id_card_image.save
context.result = id_card
else
context.fail!(message: id_card_image.errors.full_messages.join(','))
end
end
rescue StandardError => e
context.fail!(message: "Error fetching the remote image: #{e.message}")
end
|