passninja-ruby 0.2.0 → 0.3.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: b62e7fa7e35dc0c193f7bc019713f297884cd33939a17015f69cca3a567354c7
4
- data.tar.gz: 68512e3890cd1e63b3d7a62061e9c859c1ce606ce4bd6f01a2ac93d4e008e54d
3
+ metadata.gz: 92f1013947e431264a666642af2059bb8ea847069b14dfdc316784e4e1ce913e
4
+ data.tar.gz: f673fed1bc923ed1107e394880816fae4aa76abb2eea4b62a7405e68b3d6d38b
5
5
  SHA512:
6
- metadata.gz: 9124fd27d4df8ff973a7a29a3c097a70db4d0fe2a3e92654126c51911b3ac0744de699e5dbcd29cceaf07e16faa95d987f0ed31279a6680b7cc91ea5b4eff625
7
- data.tar.gz: 93d91c67ce3744c0c0032f634722b11faa26d37dc61284858b93488a6ae6537a237540e125cc9ea0ed91d9c0c26e5df6d770d811899e3fb90ff3d667fecf2ae7
6
+ metadata.gz: e46dbb205e276e7db9a7c346516e1eedab7bdabad8ec2bad662fe11000339e1ff2e5e3a71d78d0d0b6cd1009d5e8d8a3684d0e4f63656034fe381cafcb22ac30
7
+ data.tar.gz: decda426f3ff08c7a9c9ced3100ff96477d659e4d9c5d1aed0477cdc95f40ef3a2e313b16f56e9af3ca2d908f08f48733438917b61bb9e12c841ab37d903f52c
@@ -1,3 +1,3 @@
1
1
  module Passninja
2
- VERSION = "0.2.0"
2
+ VERSION = "0.3.0"
3
3
  end
data/lib/passninja.rb CHANGED
@@ -3,34 +3,43 @@ require "json"
3
3
 
4
4
  module PassNinja
5
5
  class Client
6
- def initialize(account_id, api_key)
6
+ def initialize(account_id, api_key, host = 'https://api.passninja.com')
7
7
  @account_id = account_id
8
8
  @api_key = api_key
9
+ @host = host
10
+ url = URI.parse(host)
11
+ if url.instance_of? URI::HTTPS
12
+ @use_ssl = true
13
+ else
14
+ @use_ssl = false
15
+ end
9
16
  end
10
17
 
11
18
  def pass_templates
12
- PassTemplates.new(@account_id, @api_key)
19
+ PassTemplates.new(@account_id, @api_key, @host)
13
20
  end
14
21
 
15
22
  def passes
16
- Passes.new(@account_id, @api_key)
23
+ Passes.new(@account_id, @api_key, @host, @use_ssl)
17
24
  end
18
25
  end
19
26
 
20
27
  class PassTemplates
21
- def initialize(account_id, api_key)
28
+ def initialize(account_id, api_key, host, use_ssl)
22
29
  @account_id = account_id
23
30
  @api_key = api_key
31
+ @host = host
32
+ @use_ssl = use_ssl
24
33
  end
25
34
 
26
35
  def find(pass_template_key)
27
- uri = URI("https://api.passninja.com/v1/pass_templates/#{pass_template_key}")
36
+ uri = URI("#{@host}/v1/pass_templates/#{pass_template_key}")
28
37
  puts uri
29
38
  request = Net::HTTP::Get.new(uri)
30
39
  request["X-API-KEY"] = @api_key
31
40
  request["X-ACCOUNT-ID"] = @account_id
32
41
 
33
- response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
42
+ response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: @use_ssl) do |http|
34
43
  http.request(request)
35
44
  end
36
45
 
@@ -43,22 +52,24 @@ module PassNinja
43
52
  end
44
53
 
45
54
  class Passes
46
- def initialize(account_id, api_key)
55
+ def initialize(account_id, api_key, host, use_ssl)
47
56
  @account_id = account_id
48
57
  @api_key = api_key
58
+ @host = host
59
+ @use_ssl = use_ssl
49
60
  end
50
61
 
51
62
  def create(pass_type, pass_data)
52
63
  required_fields = fetch_required_keys_set(pass_type)
53
64
  validate_fields(pass_data, required_fields)
54
- uri = URI("https://api.passninja.com/v1/passes")
65
+ uri = URI("#{@host}/v1/passes")
55
66
  request = Net::HTTP::Post.new(uri)
56
67
  request["X-API-KEY"] = @api_key
57
68
  request["X-ACCOUNT-ID"] = @account_id
58
69
  request.content_type = "application/json"
59
70
  request.body = { passType: pass_type, pass: pass_data }.to_json
60
71
 
61
- response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
72
+ response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: @use_ssl) do |http|
62
73
  http.request(request)
63
74
  end
64
75
 
@@ -70,12 +81,12 @@ module PassNinja
70
81
  end
71
82
 
72
83
  def find(pass_type)
73
- uri = URI("https://api.passninja.com/v1/passes/#{pass_type}")
84
+ uri = URI("#{@host}/v1/passes/#{pass_type}")
74
85
  request = Net::HTTP::Get.new(uri)
75
86
  request["X-API-KEY"] = @api_key
76
87
  request["X-ACCOUNT-ID"] = @account_id
77
88
 
78
- response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
89
+ response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: @use_ssl) do |http|
79
90
  http.request(request)
80
91
  end
81
92
 
@@ -87,12 +98,12 @@ module PassNinja
87
98
  end
88
99
 
89
100
  def get(pass_type, serial_number)
90
- uri = URI("https://api.passninja.com/v1/passes/#{pass_type}/#{serial_number}")
101
+ uri = URI("#{@host}/v1/passes/#{pass_type}/#{serial_number}")
91
102
  request = Net::HTTP::Get.new(uri)
92
103
  request["X-API-KEY"] = @api_key
93
104
  request["X-ACCOUNT-ID"] = @account_id
94
105
 
95
- response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
106
+ response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: @use_ssl) do |http|
96
107
  http.request(request)
97
108
  end
98
109
 
@@ -104,14 +115,14 @@ module PassNinja
104
115
  end
105
116
 
106
117
  def decrypt(pass_type, payload)
107
- uri = URI("https://api.passninja.com/v1/passes/decrypt")
118
+ uri = URI("#{@host}/v1/passes/decrypt")
108
119
  request = Net::HTTP::Post.new(uri)
109
120
  request["X-API-KEY"] = @api_key
110
121
  request["X-ACCOUNT-ID"] = @account_id
111
122
  request.content_type = "application/json"
112
123
  request.body = { passType: pass_type, payload: payload }.to_json
113
124
 
114
- response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
125
+ response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: @use_ssl) do |http|
115
126
  http.request(request)
116
127
  end
117
128
 
@@ -125,14 +136,14 @@ module PassNinja
125
136
  def update(pass_type, serial_number, pass_data)
126
137
  required_fields = fetch_required_keys_set(pass_type)
127
138
  validate_fields(pass_data, required_fields)
128
- uri = URI("https://api.passninja.com/v1/passes/#{pass_type}/#{serial_number}")
139
+ uri = URI("#{@host}/v1/passes/#{pass_type}/#{serial_number}")
129
140
  request = Net::HTTP::Put.new(uri)
130
141
  request["X-API-KEY"] = @api_key
131
142
  request["X-ACCOUNT-ID"] = @account_id
132
143
  request.content_type = "application/json"
133
- request.body = { passData: pass_data }.to_json
144
+ request.body = { pass: pass_data }.to_json
134
145
 
135
- response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
146
+ response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: @use_ssl) do |http|
136
147
  http.request(request)
137
148
  end
138
149
 
@@ -144,12 +155,12 @@ module PassNinja
144
155
  end
145
156
 
146
157
  def delete(pass_type, serial_number)
147
- uri = URI("https://api.passninja.com/v1/passes/#{pass_type}/#{serial_number}")
158
+ uri = URI("#{@host}/v1/passes/#{pass_type}/#{serial_number}")
148
159
  request = Net::HTTP::Delete.new(uri)
149
160
  request["X-API-KEY"] = @api_key
150
161
  request["X-ACCOUNT-ID"] = @account_id
151
162
 
152
- response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
163
+ response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: @use_ssl) do |http|
153
164
  http.request(request)
154
165
  end
155
166
 
@@ -159,13 +170,13 @@ module PassNinja
159
170
  private
160
171
 
161
172
  def fetch_required_keys_set(pass_type)
162
- uri = URI("https://api.passninja.com/v1/passtypes/keys/#{pass_type}")
173
+ uri = URI("#{@host}/v1/passtypes/keys/#{pass_type}")
163
174
 
164
175
  request = Net::HTTP::Get.new(uri)
165
176
  request["X-API-KEY"] = @api_key
166
177
  request["X-ACCOUNT-ID"] = @account_id
167
178
 
168
- response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
179
+ response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: @use_ssl) do |http|
169
180
  http.request(request)
170
181
  end
171
182
 
@@ -179,4 +190,4 @@ module PassNinja
179
190
  end
180
191
  end
181
192
  end
182
- end
193
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: passninja-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Richard Grundy
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-07-18 00:00:00.000000000 Z
11
+ date: 2025-09-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: net-http
@@ -95,7 +95,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  requirements: []
98
- rubygems_version: 3.3.7
98
+ rubygems_version: 3.3.26
99
99
  signing_key:
100
100
  specification_version: 4
101
101
  summary: A Ruby gem for interacting with the PassNinja API