Class: PassNinja::Passes
- Inherits:
-
Object
- Object
- PassNinja::Passes
- Defined in:
- lib/passninja.rb
Instance Method Summary collapse
- #create(pass_type, pass_data) ⇒ Object
- #decrypt(pass_type, payload) ⇒ Object
- #delete(pass_type, serial_number) ⇒ Object
- #find(pass_type) ⇒ Object
- #get(pass_type, serial_number) ⇒ Object
-
#initialize(account_id, api_key, host, use_ssl) ⇒ Passes
constructor
A new instance of Passes.
- #patch(pass_type, serial_number, pass_data) ⇒ Object
- #update(pass_type, serial_number, pass_data) ⇒ Object
Constructor Details
#initialize(account_id, api_key, host, use_ssl) ⇒ Passes
Returns a new instance of Passes.
55 56 57 58 59 60 |
# File 'lib/passninja.rb', line 55 def initialize(account_id, api_key, host, use_ssl) @account_id = account_id @api_key = api_key @host = host @use_ssl = use_ssl end |
Instance Method Details
#create(pass_type, pass_data) ⇒ Object
62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
# File 'lib/passninja.rb', line 62 def create(pass_type, pass_data) required_fields = fetch_required_keys_set(pass_type) validate_fields(pass_data, required_fields) uri = URI("#{@host}/v1/passes") request = Net::HTTP::Post.new(uri) request["X-API-KEY"] = @api_key request["X-ACCOUNT-ID"] = @account_id request.content_type = "application/json" request.body = { passTemplate: pass_type, pass: pass_data }.to_json response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: @use_ssl) do |http| http.request(request) end begin JSON.parse(response.body) rescue JSON::ParserError { error: "Unable to parse response" } end end |
#decrypt(pass_type, payload) ⇒ Object
117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 |
# File 'lib/passninja.rb', line 117 def decrypt(pass_type, payload) uri = URI("#{@host}/v1/passes/decrypt") request = Net::HTTP::Post.new(uri) request["X-API-KEY"] = @api_key request["X-ACCOUNT-ID"] = @account_id request.content_type = "application/json" request.body = { passTemplate: pass_type, payload: payload }.to_json response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: @use_ssl) do |http| http.request(request) end begin JSON.parse(response.body) rescue JSON::ParserError { error: "Unable to parse response" } end end |
#delete(pass_type, serial_number) ⇒ Object
176 177 178 179 180 181 182 183 184 185 186 187 |
# File 'lib/passninja.rb', line 176 def delete(pass_type, serial_number) uri = URI("#{@host}/v1/passes/#{pass_type}/#{serial_number}") request = Net::HTTP::Delete.new(uri) request["X-API-KEY"] = @api_key request["X-ACCOUNT-ID"] = @account_id response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: @use_ssl) do |http| http.request(request) end JSON.parse(response.body)["serialNumber"] end |
#find(pass_type) ⇒ Object
83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 |
# File 'lib/passninja.rb', line 83 def find(pass_type) uri = URI("#{@host}/v1/passes/#{pass_type}") request = Net::HTTP::Get.new(uri) request["X-API-KEY"] = @api_key request["X-ACCOUNT-ID"] = @account_id response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: @use_ssl) do |http| http.request(request) end begin JSON.parse(response.body) rescue JSON::ParserError { error: "Unable to parse response" } end end |
#get(pass_type, serial_number) ⇒ Object
100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 |
# File 'lib/passninja.rb', line 100 def get(pass_type, serial_number) uri = URI("#{@host}/v1/passes/#{pass_type}/#{serial_number}") request = Net::HTTP::Get.new(uri) request["X-API-KEY"] = @api_key request["X-ACCOUNT-ID"] = @account_id response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: @use_ssl) do |http| http.request(request) end begin JSON.parse(response.body) rescue JSON::ParserError { error: "Unable to parse response. Server response code: #{response.code}" } end end |
#patch(pass_type, serial_number, pass_data) ⇒ Object
157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 |
# File 'lib/passninja.rb', line 157 def patch(pass_type, serial_number, pass_data) uri = URI("#{@host}/v1/passes/#{pass_type}/#{serial_number}") request = Net::HTTP::Patch.new(uri) request["X-API-KEY"] = @api_key request["X-ACCOUNT-ID"] = @account_id request.content_type = "application/json" request.body = { pass: pass_data }.to_json response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: @use_ssl) do |http| http.request(request) end begin JSON.parse(response.body) rescue JSON::ParserError { error: "Unable to parse response" } end end |
#update(pass_type, serial_number, pass_data) ⇒ Object
136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 |
# File 'lib/passninja.rb', line 136 def update(pass_type, serial_number, pass_data) required_fields = fetch_required_keys_set(pass_type) validate_fields(pass_data, required_fields) uri = URI("#{@host}/v1/passes/#{pass_type}/#{serial_number}") request = Net::HTTP::Put.new(uri) request["X-API-KEY"] = @api_key request["X-ACCOUNT-ID"] = @account_id request.content_type = "application/json" request.body = { pass: pass_data }.to_json response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: @use_ssl) do |http| http.request(request) end begin JSON.parse(response.body) rescue JSON::ParserError { error: "Unable to parse response" } end end |