pingen-client 0.1.0 → 0.2.0

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: 42c9a4ea40569317bc507b09940bfaaae6f255e5de7eadb0b6b8300d65c7f663
4
- data.tar.gz: 9981fe76534ed1fe0d9b7161cc5922e8bed011d9c981215b0ef8a8b0528c4f3b
3
+ metadata.gz: b0fa20ad4aed09cdf236b031a30a9dd568841ffa41abb499d3357b70fee5fb3e
4
+ data.tar.gz: b2ac3124e1a4b8e0f63a9c00d051b339efedaf19b2528b29c7e738812a44d5f9
5
5
  SHA512:
6
- metadata.gz: 7a2892ca725a8115af538684ccc267dd8b57c25ea8cd3606602c6d789a19cbe2843e27f9abce6ceb38ca1c7ae7d2849f8580c5dc3f4af716018c0cfab7d924e2
7
- data.tar.gz: e8573f468972422569d94d957534982d7e929170d0ff128673c4a3666297c2c3e211b2ae6340b8a46ace3ca6ca81ca4ce63d059b724264866a81d819524018e1
6
+ metadata.gz: d3342d0757a943ddcd98451b6c989c55bf33027cc33114c178d20ae8db4dc9e4ad6f06dcbb5c1310e0b2416b1324ed2e7508092ea599b9d42a8f25865f82f721
7
+ data.tar.gz: 305840fc5a481901e1fed4af32275dd0102046a55c5bfd9dec85588de3cc7a50f2549104cbe2f63d35b62c4bbdf5c61499da3e85b68dc30b8d1d7ec14aed7ecf
@@ -26,5 +26,4 @@ blocks:
26
26
  jobs:
27
27
  - name: tests
28
28
  commands:
29
- - bundle exec standardrb
30
- - bundle exec rspec
29
+ - bin/check
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- pingen-client (0.1.0)
4
+ pingen-client (0.2.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
data/bin/check ADDED
@@ -0,0 +1,4 @@
1
+ #!/bin/sh
2
+
3
+ bundle exec standardrb
4
+ bundle exec rspec
data/lib/pingen/client.rb CHANGED
@@ -1,6 +1,8 @@
1
1
  require "net/http"
2
2
  require "net/http/post/multipart"
3
3
  require_relative "response"
4
+ require_relative "documents"
5
+ require_relative "sends"
4
6
 
5
7
  module Pingen
6
8
  class Client
@@ -18,48 +20,12 @@ module Pingen
18
20
  @logger = logger
19
21
  end
20
22
 
21
- def list
22
- get_request("/document/list")
23
+ def documents
24
+ @documents ||= Documents.new(self)
23
25
  end
24
26
 
25
- def get(id)
26
- get_request("/document/get/id/#{id}")
27
- end
28
-
29
- # send_params:
30
- # fast_send: true | false, default: false.
31
- # true - A Post
32
- # false - B Post
33
- # color: true | false, default: false
34
- def upload(pdf, send: false, **send_params)
35
- data = {send: send}.merge(send ? parse_send_params(send_params) : {})
36
- post_multipart_request("/document/upload", pdf, data: data.to_json)
37
- end
38
-
39
- def pdf(id)
40
- get_request("/document/pdf/id/#{id}")
41
- end
42
-
43
- def delete(id)
44
- post_request("/document/delete/id/#{id}", {})
45
- end
46
-
47
- # send_params:
48
- # fast_send: true | false, default: false.
49
- # true - A Post
50
- # false - B Post
51
- # color: true | false, default: false
52
- def schedule_send(id, **send_params)
53
- post_request("/document/send/id/#{id}", parse_send_params(send_params))
54
- end
55
-
56
- # allows you to cancel a pending send
57
- def cancel_send(send_id)
58
- get_request("/send/cancel/id/#{send_id}")
59
- end
60
-
61
- def track(send_id)
62
- get_request("/send/track/id/#{send_id}")
27
+ def sends
28
+ @sends ||= Sends.new(self)
63
29
  end
64
30
 
65
31
  def get_request(path, params = nil, request_params = {})
@@ -127,11 +93,5 @@ module Pingen
127
93
  request["Content-Type"] = "application/json"
128
94
  request["Accept"] = "application/json"
129
95
  end
130
-
131
- private
132
-
133
- def parse_send_params(**params)
134
- {color: params[:color] ? 1 : 0, speed: params[:fast_send] ? 1 : 2}
135
- end
136
96
  end
137
97
  end
@@ -0,0 +1,48 @@
1
+ module Pingen
2
+ class Documents
3
+ def initialize(client = Client.new)
4
+ @client = client
5
+ end
6
+
7
+ def list
8
+ @client.get_request("/document/list")
9
+ end
10
+
11
+ def get(id)
12
+ @client.get_request("/document/get/id/#{id}")
13
+ end
14
+
15
+ # send_params:
16
+ # fast_send: true | false, default: false.
17
+ # true - A Post
18
+ # false - B Post
19
+ # color: true | false, default: false
20
+ def upload(pdf, send: false, **send_params)
21
+ data = {send: send}.merge(send ? parse_send_params(send_params) : {})
22
+ @client.post_multipart_request("/document/upload", pdf, data: data.to_json)
23
+ end
24
+
25
+ # send_params:
26
+ # fast_send: true | false, default: false.
27
+ # true - A Post
28
+ # false - B Post
29
+ # color: true | false, default: false
30
+ def send(id, **send_params)
31
+ @client.post_request("/document/send/id/#{id}", parse_send_params(send_params))
32
+ end
33
+
34
+ def pdf(id)
35
+ @client.get_request("/document/pdf/id/#{id}")
36
+ end
37
+
38
+ def delete(id)
39
+ @client.post_request("/document/delete/id/#{id}", {})
40
+ end
41
+
42
+ private
43
+
44
+ def parse_send_params(**params)
45
+ {color: params[:color] ? 1 : 0, speed: params[:fast_send] ? 1 : 2}
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,24 @@
1
+ module Pingen
2
+ class Sends
3
+ def initialize(client = Client.new)
4
+ @client = client
5
+ end
6
+
7
+ def list
8
+ @client.get_request("/send/list")
9
+ end
10
+
11
+ def get(id)
12
+ @client.get_request("/send/get/id/#{id}")
13
+ end
14
+
15
+ # allows you to cancel a pending send
16
+ def cancel(id)
17
+ @client.get_request("/send/cancel/id/#{id}")
18
+ end
19
+
20
+ def track(id)
21
+ @client.get_request("/send/track/id/#{id}")
22
+ end
23
+ end
24
+ end
@@ -2,9 +2,9 @@
2
2
 
3
3
  Gem::Specification.new do |spec|
4
4
  spec.name = "pingen-client"
5
- spec.version = "0.1.0"
6
- spec.authors = ["Martin Cavoj"]
7
- spec.email = ["martin.cavoj@renuo.ch"]
5
+ spec.version = "0.2.0"
6
+ spec.authors = ["Martin Cavoj", "Alessandro Rodi"]
7
+ spec.email = ["alessandro.rodi@renuo.ch"]
8
8
 
9
9
  spec.summary = "Invoke Pingen API easily with Ruby"
10
10
  spec.description = "This gem allows you to connect to Pingen API and use the services provided"
@@ -16,18 +16,10 @@ Gem::Specification.new do |spec|
16
16
  spec.metadata["source_code_uri"] = "https://github.com/renuo/pingen-client"
17
17
  spec.metadata["changelog_uri"] = "https://github.com/renuo/pingen-client/CHANGELOG.md"
18
18
 
19
- # Specify which files should be added to the gem when it is released.
20
- # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
21
19
  spec.files = Dir.chdir(File.expand_path(__dir__)) do
22
20
  `git ls-files -z`.split("\x0").reject { |f| f.match(%r{\A(?:test|spec|features)/}) }
23
21
  end
24
22
  spec.bindir = "exe"
25
23
  spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
26
24
  spec.require_paths = ["lib"]
27
-
28
- # Uncomment to register a new dependency of your gem
29
- # spec.add_dependency "example-gem", "~> 1.0"
30
-
31
- # For more information and examples about making a new gem, checkout our
32
- # guide at: https://bundler.io/guides/creating_gem.html
33
25
  end
metadata CHANGED
@@ -1,18 +1,19 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pingen-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Martin Cavoj
8
+ - Alessandro Rodi
8
9
  autorequire:
9
10
  bindir: exe
10
11
  cert_chain: []
11
- date: 2021-08-10 00:00:00.000000000 Z
12
+ date: 2021-09-20 00:00:00.000000000 Z
12
13
  dependencies: []
13
14
  description: This gem allows you to connect to Pingen API and use the services provided
14
15
  email:
15
- - martin.cavoj@renuo.ch
16
+ - alessandro.rodi@renuo.ch
16
17
  executables: []
17
18
  extensions: []
18
19
  extra_rdoc_files: []
@@ -27,10 +28,13 @@ files:
27
28
  - LICENSE.txt
28
29
  - README.md
29
30
  - Rakefile
31
+ - bin/check
30
32
  - bin/console
31
33
  - bin/setup
32
34
  - lib/pingen/client.rb
35
+ - lib/pingen/documents.rb
33
36
  - lib/pingen/response.rb
37
+ - lib/pingen/sends.rb
34
38
  - pingen-client.gemspec
35
39
  homepage: https://github.com/renuo/pingen-client
36
40
  licenses: