23 lines
513 B
Ruby
23 lines
513 B
Ruby
# frozen_string_literal: true
|
|
|
|
class WeasyprintService
|
|
def self.generate_pdf(html, options = {})
|
|
headers = {
|
|
'Content-Type' => 'application/json',
|
|
'X-Request-Id' => Current.request_id
|
|
}
|
|
|
|
body = {
|
|
html:,
|
|
upstream_context: options
|
|
}.to_json
|
|
|
|
response = Typhoeus.post(WEASYPRINT_URL, headers:, body:)
|
|
|
|
if response.success?
|
|
response.body
|
|
else
|
|
raise StandardError, "PDF Generation failed: #{response.code} #{response.status_message}"
|
|
end
|
|
end
|
|
end
|