24 lines
513 B
Ruby
24 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
|