paperplane-rb 0.1.0 → 0.1.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9ef3026a3b88856233f3e9d4cfea8f165f126bd240de7808dfba2e205baba9e0
4
- data.tar.gz: 6702fe14e39f56d4060a505de5505835acc10cfd4a3a823844ac9f2d1c90af5a
3
+ metadata.gz: 5b65c9a63f34fa077d0b88b9a018cf567728b42a67629d7869e6d69b4b6658e7
4
+ data.tar.gz: 9f6f6c7287ebfd6e735c736780fef0e51b9c9af8d78a1a7f560e41bd9ce6054f
5
5
  SHA512:
6
- metadata.gz: 40dff58c30f2d294a8d05d689420be03a0177c3c53c4a224be5b70d9e575db4ceaa19202dff5848b0bb177d49e1b427288f473916f0e02cb69167c5cf30786ac
7
- data.tar.gz: c979966d45b8b0ae4c1ea48bf6706bb41ba0347329ebe668b9beb806a7cad23245e67d65fecb61b7bf9d2a4d3aa7bf5e58f96a73d7124daf857d8d065fb2e7b7
6
+ metadata.gz: 0ea7009421febacd77f7c777e780a2b3f55e655ae47078c287d0a994040081c75db977114a978d47659aa00c5de3406eaeb28df7bdc1274fe67ffbc64a30f4cb
7
+ data.tar.gz: c4b45a20f30eca4cb0df75395d3dd6d96cd4bdef1467a6206741849b0e150cb16bfdf0227295d6960c2dc5e2f786286c5ed0a9e1d7d1dfa61226302402aa6e35
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Paperplane
4
+ class Error < StandardError
5
+ end
6
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Paperplane
4
- VERSION = "0.1.0"
4
+ VERSION = "0.1.1"
5
5
  end
data/lib/paperplane.rb CHANGED
@@ -1,11 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative "paperplane/version"
4
3
  require 'http'
4
+ require 'paperplane/error'
5
+ require 'paperplane/version'
5
6
 
6
7
  module Paperplane
7
- class Error < StandardError; end
8
-
9
8
  class << self
10
9
  BASE_URL = 'https://api.paperplane.app/v1'.freeze
11
10
  ENDPOINTS = {
@@ -18,7 +17,7 @@ module Paperplane
18
17
  attr_accessor :api_key
19
18
 
20
19
  def create_job(url, page_size = 'A4')
21
- validate_page_size(page_size)
20
+ validate_page_size!(page_size)
22
21
  perform_request(:post, :create_job, url, page_size:)
23
22
  end
24
23
 
@@ -27,21 +26,20 @@ module Paperplane
27
26
  end
28
27
 
29
28
  def download_pdf(url, page_size = 'A4')
30
- validate_page_size(page_size)
29
+ validate_page_size!(page_size)
31
30
  perform_request(:post, :download_pdf, url, page_size:)
32
31
  end
33
32
 
34
33
  private
35
34
 
36
35
  def http_client
37
- @http_client ||= HTTP.basic_auth(user: @api_key, pass: '')
36
+ @http_client ||= HTTP.basic_auth(user: self.api_key, pass: '')
38
37
  end
39
38
 
40
39
  def perform_request(method, endpoint_name, *args)
41
40
  url = build_url(endpoint_name, args[0])
42
41
  response = http_client.request(method, url, json: args[1])
43
- handle_error(response)
44
- response.parse
42
+ validate_response!(response)
45
43
  end
46
44
 
47
45
  def build_url(endpoint_name, id)
@@ -49,11 +47,12 @@ module Paperplane
49
47
  endpoint.include?('://') ? endpoint : "#{BASE_URL}#{format(endpoint, id:)}"
50
48
  end
51
49
 
52
- def handle_error(response)
50
+ def validate_response!(response)
53
51
  raise Paperplane::Error, response.parse['message'] if response.status >= 400
52
+ response.parse
54
53
  end
55
54
 
56
- def validate_page_size(page_size)
55
+ def validate_page_size!(page_size)
57
56
  raise ArgumentError, "Invalid page size '#{page_size}'" unless PAGE_SIZES.include?(page_size)
58
57
  end
59
58
  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.0
4
+ version: 0.1.1
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/error.rb
41
42
  - lib/paperplane/version.rb
42
43
  - paperplane.gemspec
43
44
  - sig/paperplane.rbs