Module: Paperplane
- Defined in:
- lib/paperplane.rb,
lib/paperplane/error.rb,
lib/paperplane/version.rb
Defined Under Namespace
Classes: Error
Constant Summary collapse
- ENDPOINTS =
{ download_pdf: 'https://download.paperplane.app/', jobs: 'https://api.paperplane.app/jobs' }.freeze
- VERSION =
"0.1.8"
Class Attribute Summary collapse
Class Method Summary collapse
- .client ⇒ Object
- .configure {|config| ... } ⇒ Object
-
.create_job(url, page_size: 'A4', options: {}) ⇒ Object
Create Job.
-
.download_pdf(url, page_size: 'A4') ⇒ Object
Download PDF.
- .prepare_params(url, page_size: 'A4') ⇒ Object
-
.show_job(job_id) ⇒ Object
Show Job.
- .version ⇒ Object
Class Attribute Details
Class Method Details
.client ⇒ Object
29 30 31 |
# File 'lib/paperplane.rb', line 29 def client @client ||= HTTP.basic_auth(user: config.api_key, pass: '') end |
.configure {|config| ... } ⇒ Object
21 22 23 |
# File 'lib/paperplane.rb', line 21 def configure yield(config) if block_given? end |
.create_job(url, page_size: 'A4', options: {}) ⇒ Object
Create Job
48 49 50 51 52 53 54 55 |
# File 'lib/paperplane.rb', line 48 def create_job(url, page_size: 'A4', options: {}) params = prepare_params(url, page_size: page_size) response = client.post(ENDPOINTS[:jobs], form: params.merge()) raise Paperplane::Error, "Failed to create job: #{response.status}" unless response.status.success? config.logger.info("Created job for URL: #{url}") response.parse end |
.download_pdf(url, page_size: 'A4') ⇒ Object
Download PDF
38 39 40 41 42 43 44 45 |
# File 'lib/paperplane.rb', line 38 def download_pdf(url, page_size: 'A4') params = prepare_params(url, page_size: page_size) response = client.post(ENDPOINTS[:download_pdf], form: params) raise Paperplane::Error, "Failed to download PDF: #{response.status}" unless response.status.success? config.logger.info("Downloaded PDF: #{url}") response.body.to_s end |
.prepare_params(url, page_size: 'A4') ⇒ Object
33 34 35 |
# File 'lib/paperplane.rb', line 33 def prepare_params(url, page_size: 'A4') params = { url: url, page_size: page_size } end |
.show_job(job_id) ⇒ Object
Show Job
58 59 60 61 62 63 64 |
# File 'lib/paperplane.rb', line 58 def show_job(job_id) response = client.get("#{ENDPOINTS[:jobs]}/#{job_id}") raise Paperplane::Error, "Failed to show job: #{response.status}" unless response.status.success? config.logger.info("Fetched job: #{job_id}") response.parse end |
.version ⇒ Object
25 26 27 |
# File 'lib/paperplane.rb', line 25 def version @version ||= Paperplane::VERSION end |