Class: Passninja::Passes

Inherits:
Object
  • Object
show all
Defined in:
lib/passninja.rb

Instance Method Summary collapse

Constructor Details

#initialize(account_id, api_key) ⇒ Passes



40
41
42
43
# File 'lib/passninja.rb', line 40

def initialize(, api_key)
  @account_id = 
  @api_key = api_key
end

Instance Method Details

#create(pass_type, pass_data) ⇒ Object



45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'lib/passninja.rb', line 45

def create(pass_type, pass_data)
  required_fields = fetch_required_keys_set(pass_type)
  validate_fields(pass_data, required_fields)
  uri = URI("https://api.passninja.com/v1/passes")
  request = Net::HTTP::Post.new(uri)
  request.basic_auth(@account_id, @api_key)
  request.content_type = "application/json"
  request.body = { passType: pass_type, passData: pass_data }.to_json

  response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
    http.request(request)
  end

  JSON.parse(response.body)
end

#decrypt(pass_type, payload) ⇒ Object



85
86
87
88
89
90
91
92
93
94
95
96
97
# File 'lib/passninja.rb', line 85

def decrypt(pass_type, payload)
  uri = URI("https://api.passninja.com/v1/passes/decrypt")
  request = Net::HTTP::Post.new(uri)
  request.basic_auth(@account_id, @api_key)
  request.content_type = "application/json"
  request.body = { passType: pass_type, payload: payload }.to_json

  response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
    http.request(request)
  end

  JSON.parse(response.body)
end

#delete(pass_type, serial_number) ⇒ Object



115
116
117
118
119
120
121
122
123
124
125
# File 'lib/passninja.rb', line 115

def delete(pass_type, serial_number)
  uri = URI("https://api.passninja.com/v1/passes/#{pass_type}/#{serial_number}")
  request = Net::HTTP::Delete.new(uri)
  request.basic_auth(@account_id, @api_key)

  response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
    http.request(request)
  end

  JSON.parse(response.body)["serialNumber"]
end

#find(pass_type) ⇒ Object



61
62
63
64
65
66
67
68
69
70
71
# File 'lib/passninja.rb', line 61

def find(pass_type)
  uri = URI("https://api.passninja.com/v1/passes?passType=#{pass_type}")
  request = Net::HTTP::Get.new(uri)
  request.basic_auth(@account_id, @api_key)

  response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
    http.request(request)
  end

  JSON.parse(response.body)
end

#get(pass_type, serial_number) ⇒ Object



73
74
75
76
77
78
79
80
81
82
83
# File 'lib/passninja.rb', line 73

def get(pass_type, serial_number)
  uri = URI("https://api.passninja.com/v1/passes/#{pass_type}/#{serial_number}")
  request = Net::HTTP::Get.new(uri)
  request.basic_auth(@account_id, @api_key)

  response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
    http.request(request)
  end

  JSON.parse(response.body)
end

#update(pass_type, serial_number, pass_data) ⇒ Object



99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
# File 'lib/passninja.rb', line 99

def update(pass_type, serial_number, pass_data)
  required_fields = fetch_required_keys_set(pass_type)
  validate_fields(pass_data, required_fields)
  uri = URI("https://api.passninja.com/v1/passes/#{pass_type}/#{serial_number}")
  request = Net::HTTP::Put.new(uri)
  request.basic_auth(@account_id, @api_key)
  request.content_type = "application/json"
  request.body = { passData: pass_data }.to_json

  response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
    http.request(request)
  end

  JSON.parse(response.body)
end