Module: RailLocatorApi
- Defined in:
- lib/rail-locator-api.rb,
lib/rail-locator-api/request.rb,
lib/rail-locator-api/version.rb,
lib/rail-locator-api/response.rb,
lib/rail-locator-api/api_request.rb,
lib/rail-locator-api/rail_locator_api_error.rb,
lib/generators/rail_locator_api/install/install_generator.rb
Defined Under Namespace
Classes: APIRequest, DynamicSetting, InstallGenerator, RailLocatorApiError, Request, Response
Constant Summary
collapse
- VERSION =
"0.1.10"
Class Method Summary
collapse
Class Method Details
.add_reader(name) ⇒ Object
58
59
60
61
62
|
# File 'lib/rail-locator-api.rb', line 58
def add_reader(name)
define_singleton_method(name) do |*args|
send("#{name}_setting").value(*args)
end
end
|
.add_writer(name, type) ⇒ Object
64
65
66
67
68
|
# File 'lib/rail-locator-api.rb', line 64
def add_writer(name, type)
define_singleton_method("#{name}=") do |value|
send("#{name}_setting=", DynamicSetting.build(value, type))
end
end
|
.generate_access_token ⇒ Object
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
# File 'lib/rail-locator-api.rb', line 12
def generate_access_token
if RailLocatorApi.keycloak_grant_type == "password"
payload = "grant_type=#{RailLocatorApi.keycloak_grant_type}&client_id=#{RailLocatorApi.keycloak_client_id}&username=#{RailLocatorApi.api_user_email}&password=#{RailLocatorApi.api_user_password}"
else
payload = "grant_type=#{RailLocatorApi.keycloak_grant_type}&client_id=#{RailLocatorApi.keycloak_client_id}&client_secret=#{RailLocatorApi.keycloak_client_secret}&code=#{RailLocatorApi::Request.api_key}&redirect_uri=#{RailLocatorApi.keycloak_redirect_uri}"
end
connection = Faraday.new(RailLocatorApi.keycloak_token_url, proxy: nil,
ssl: { version: "TLSv1_2" }) do |faraday|
faraday.adapter Faraday.default_adapter
faraday.response :logger, ::Logger.new(STDOUT), bodies: true
end
response = connection.post RailLocatorApi.keycloak_token_url, payload do |request|
request.['accept'] = 'application/json'
end
JSON.parse(response.body)
end
|
.refresh_access_token ⇒ Object
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
# File 'lib/rail-locator-api.rb', line 31
def refresh_access_token
payload = "grant_type=refresh_token&client_id=#{RailLocatorApi.keycloak_client_id}&client_secret=#{RailLocatorApi.keycloak_client_secret}&refresh_token=#{RailLocatorApi::Request.refresh_token}&redirect_uri=#{RailLocatorApi.keycloak_redirect_uri}"
connection = Faraday.new(RailLocatorApi.keycloak_token_url, proxy: nil,
ssl: { version: "TLSv1_2" }) do |faraday|
faraday.adapter Faraday.default_adapter
faraday.response :logger, ::Logger.new(STDOUT), bodies: true
end
response = connection.post RailLocatorApi.keycloak_token_url, payload do |request|
request.['accept'] = 'application/json'
end
JSON.parse(response.body)
end
|
.register(name, value, type = nil) ⇒ Object
50
51
52
53
54
55
56
|
# File 'lib/rail-locator-api.rb', line 50
def register(name, value, type = nil)
cattr_accessor "#{name}_setting".to_sym
add_reader(name)
add_writer(name, type)
send "#{name}=", value
end
|
.setup {|_self| ... } ⇒ Object
46
47
48
|
# File 'lib/rail-locator-api.rb', line 46
def setup
yield self
end
|