paperplane-rb 0.1.6 → 0.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/lib/paperplane/config.rb +11 -0
- data/lib/paperplane/error.rb +5 -1
- data/lib/paperplane/version.rb +1 -1
- data/lib/paperplane.rb +31 -36
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ae47af520ac08251f5abda8c09e8cad0d12e2a2e0c8b1222fd0bcaf5d64e3213
|
4
|
+
data.tar.gz: 98676611ec96ca6613f868eeb7df4b9d27b93e5d3ca14a025aca7aaf876ee8f0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2fa065a06d16adc2fc54552096b084080e676b54d29cfcbf29ddd4a06d7a208733ce899345ed382a61f49397255da32a7b60070ee476334ae6d73419eb106aff
|
7
|
+
data.tar.gz: 4ac0be8e34fd9d890f9a46e264545851b2b627aff6f2956ac489d701c6911071084539f0e5d5921c47318c97b747ec156c0628cac3aed700e769d7f7237c1af4
|
data/Gemfile.lock
CHANGED
data/lib/paperplane/error.rb
CHANGED
data/lib/paperplane/version.rb
CHANGED
data/lib/paperplane.rb
CHANGED
@@ -1,67 +1,62 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'http'
|
4
|
+
require 'paperplane/config'
|
4
5
|
require 'paperplane/error'
|
5
6
|
require 'paperplane/version'
|
6
7
|
|
7
8
|
module Paperplane
|
8
9
|
ENDPOINTS = {
|
9
|
-
|
10
|
-
|
11
|
-
download_pdf: 'https://download.paperplane.app/'
|
10
|
+
download_pdf: 'https://download.paperplane.app/',
|
11
|
+
jobs: 'https://api.paperplane.app/jobs'
|
12
12
|
}.freeze
|
13
|
-
PAGE_SIZES = %w[Letter Legal A3 A4 A5].freeze
|
14
13
|
|
15
14
|
class << self
|
16
|
-
|
15
|
+
attr_writer :config
|
16
|
+
|
17
|
+
def config
|
18
|
+
@config ||= Config.new
|
19
|
+
end
|
17
20
|
|
18
21
|
def configure
|
19
|
-
yield
|
22
|
+
yield(config) if block_given?
|
20
23
|
end
|
21
24
|
|
22
|
-
def
|
23
|
-
|
24
|
-
perform_request(:post, :create_job, url: url, page_size: page_size)
|
25
|
+
def client
|
26
|
+
@client ||= HTTP.basic_auth(user: config.api_key, pass: '')
|
25
27
|
end
|
26
28
|
|
27
|
-
def
|
28
|
-
|
29
|
+
def prepare_params(url, page_size: 'A4')
|
30
|
+
params = { url: url, page_size: page_size }
|
29
31
|
end
|
30
32
|
|
33
|
+
# Download PDF
|
31
34
|
def download_pdf(url, page_size: 'A4')
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
35
|
+
params = prepare_params(url, page_size: page_size)
|
36
|
+
response = client.post(ENDPOINTS[:download_pdf], form: params)
|
37
|
+
raise Paperplane::Error, "Failed to download PDF: #{response.status}" unless response.status.success?
|
38
|
+
|
39
|
+
config.logger.info("Downloaded PDF: #{url}")
|
36
40
|
response.body.to_s
|
37
41
|
end
|
38
42
|
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
43
|
+
# Create Job
|
44
|
+
def create_job(url, page_size: 'A4', options: {})
|
45
|
+
params = prepare_params(url, page_size: page_size)
|
46
|
+
response = client.post(ENDPOINTS[:jobs], form: params.merge(options))
|
47
|
+
raise Paperplane::Error, "Failed to create job: #{response.status}" unless response.status.success?
|
44
48
|
|
45
|
-
|
46
|
-
|
47
|
-
puts url
|
48
|
-
puts args
|
49
|
-
response = http_client.request(method, url.to_s, json: args.to_json)
|
50
|
-
puts response.parse
|
51
|
-
validate_response!(response)
|
49
|
+
config.logger.info("Created job for URL: #{url}")
|
50
|
+
response.parse
|
52
51
|
end
|
53
52
|
|
54
|
-
|
55
|
-
|
56
|
-
|
53
|
+
# Show Job
|
54
|
+
def show_job(job_id)
|
55
|
+
response = client.get("#{ENDPOINTS[:jobs]}/#{job_id}")
|
56
|
+
raise Paperplane::Error, "Failed to show job: #{response.status}" unless response.status.success?
|
57
57
|
|
58
|
-
|
59
|
-
# raise Paperplane::Error, response.parse['message'] if response.status >= 400
|
58
|
+
config.logger.info("Fetched job: #{job_id}")
|
60
59
|
response.parse
|
61
60
|
end
|
62
|
-
|
63
|
-
def validate_page_size!(page_size)
|
64
|
-
raise ArgumentError, "Invalid page size '#{page_size}'" unless PAGE_SIZES.include?(page_size)
|
65
|
-
end
|
66
61
|
end
|
67
62
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: paperplane-rb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- nolyoi
|
@@ -38,6 +38,7 @@ files:
|
|
38
38
|
- README.md
|
39
39
|
- Rakefile
|
40
40
|
- lib/paperplane.rb
|
41
|
+
- lib/paperplane/config.rb
|
41
42
|
- lib/paperplane/error.rb
|
42
43
|
- lib/paperplane/version.rb
|
43
44
|
- paperplane.gemspec
|