2023-08-31 01:12:24 +03:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
|
|
class VerifyPdfSignatureController < ApplicationController
|
2023-09-17 00:45:57 +03:00
|
|
|
skip_authorization_check
|
|
|
|
|
|
2023-08-31 01:12:24 +03:00
|
|
|
def create
|
2026-08-12 11:15:43 +03:00
|
|
|
trusted_certs = Accounts.load_trusted_certs(current_account)
|
|
|
|
|
|
|
|
|
|
signatures =
|
2023-08-31 01:12:24 +03:00
|
|
|
params[:files].map do |file|
|
2026-08-12 11:15:43 +03:00
|
|
|
VerifyPdfSignature.call(file.open, trusted_certs)
|
2023-08-31 01:12:24 +03:00
|
|
|
end
|
|
|
|
|
|
|
|
|
|
render turbo_stream: turbo_stream.replace('result', partial: 'result',
|
2026-08-12 11:15:43 +03:00
|
|
|
locals: { signatures:, files: params[:files] })
|
|
|
|
|
rescue Pdfium::PdfiumError
|
2024-09-18 19:47:47 +03:00
|
|
|
render turbo_stream: turbo_stream.replace('result', html: helpers.tag.div(I18n.t('invalid_pdf'), id: 'result'))
|
2023-08-31 01:12:24 +03:00
|
|
|
end
|
|
|
|
|
end
|