Class: ApiPostcodeNl::API

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

Constant Summary collapse

BASE_URL =
"https://api.postcode.nl/rest/addresses"

Class Method Summary collapse

Class Method Details

.address(postcode, house_number, house_number_addition = nil) ⇒ Object



46
47
48
# File 'lib/api_postcode_nl/api.rb', line 46

def address(postcode, house_number, house_number_addition = nil)
  parse(send(postcode, house_number, house_number_addition))
end

.get_url(postcode, house_number, house_number_addition = nil) ⇒ Object



11
12
13
# File 'lib/api_postcode_nl/api.rb', line 11

def get_url(postcode, house_number, house_number_addition = nil)
  "#{BASE_URL}/#{postcode}/#{house_number}" + (house_number_addition ? "/#{house_number_addition}" : "")
end

.keyObject



50
51
52
# File 'lib/api_postcode_nl/api.rb', line 50

def key
  @@key
end

.key=(value) ⇒ Object



54
55
56
# File 'lib/api_postcode_nl/api.rb', line 54

def key=(value)
  @@key = value
end

.parse(response) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/api_postcode_nl/api.rb', line 27

def parse(response)
  result = {}
  parsed_response = JSON.parse(response)
  { 
    street_name: parsed_response["street"],
    house_number: parsed_response["houseNumber"],
    postcode: parsed_response["postcode"],
    city:  parsed_response["city"],
    municipality: parsed_response["municipality"],
    province: parsed_response["province"],
    latitude: parsed_response["latitude"],
    longitude: parsed_response["longitude"],
    address_type: parsed_response["addressType"],
    purpose: parsed_response["purpose"],
    area: parsed_response["surfaceArea"],
    house_number_additions: parsed_response["houseNumberAdditions"]
  }
end

.secretObject



58
59
60
# File 'lib/api_postcode_nl/api.rb', line 58

def secret
  @@secret
end

.secret=(value) ⇒ Object



62
63
64
# File 'lib/api_postcode_nl/api.rb', line 62

def secret=(value)
  @@secret = value
end

.send(postcode, house_number, house_number_addition = nil) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
# File 'lib/api_postcode_nl/api.rb', line 15

def send(postcode, house_number, house_number_addition = nil)
  uri = URI.parse(get_url(postcode, house_number, house_number_addition))
  http = Net::HTTP.new(uri.host, uri.port)
  http.use_ssl = true
  
  request = Net::HTTP::Get.new(uri.path)
  request.basic_auth key, secret
  http.start {|http|
    http.request(request)
  }.body
end