Sha256: d94704976ca841e115c28991f2b7acaee75b02f6daa075073ba723a317ecd18c

Contents?: true

Size: 771 Bytes

Versions: 2

Compression:

Stored size: 771 Bytes

Contents

# frozen_string_literal: true

module PuppeteerEntity
  class Pdf < Base
    attributes_from Attributes::Pdf

    transform_keys(&:to_sym)

    private

    def response_headers
      super.merge(
        accept: "application/pdf"
      )
    end

    def as_body_json
      to_h
        .slice(*Attributes::Pdf.attribute_names)
        .reject { |_, v| v.blank? }
        .deep_stringify_keys
        .deep_transform_keys do |k|
          case k
          when "set_extra_http_headers" then "setExtraHTTPHeaders"
          when "prefer_css_page_size" then "preferCSSPageSize"
          else k.camelcase(:lower)
          end
        end
    end

    def browserless_uri
      URI.parse(browserless_url).tap do |uri|
        uri.path = "/pdf"
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
puppeteer_entity-0.1.1 lib/puppeteer_entity/pdf.rb
puppeteer_entity-0.1.0 lib/puppeteer_entity/pdf.rb