Class: Pdfserve::Merge

Inherits:
Object
  • Object
show all
Defined in:
lib/pdfserve/merge.rb

Constant Summary collapse

PATH =
"/api/v1/pdf/merge"

Instance Method Summary collapse

Constructor Details

#initialize(api_endpoint:, api_token: nil) ⇒ Merge

Returns a new instance of Merge.



14
15
16
17
# File 'lib/pdfserve/merge.rb', line 14

def initialize(api_endpoint:, api_token: nil)
  @api_endpoint = api_endpoint + PATH
  @api_token = api_token
end

Instance Method Details

#merge(file_urls, output_path) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/pdfserve/merge.rb', line 19

def merge(file_urls, output_path)
  uri = URI(api_endpoint)
  request = Net::HTTP::Post.new(uri)
  request["token"] = api_token unless api_token.nil?
  form_data = file_urls.map { |url| ["files", url] }

  request.set_form form_data, "multipart/form-data"

  response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == "https") do |http|
    http.request(request)
  end

  if response.is_a?(Net::HTTPSuccess)
    File.open(output_path, "wb") { |file| file.write(response.body) }
    puts "Success!"
    OpenStruct.new(success: true, errors: "")
  else
    puts "Failed!"
    OpenStruct.new(success: false, errors: response.message)
  end
end