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.0.24"
Class Method Summary
collapse
Class Method Details
.add_reader(name) ⇒ Object
43
44
45
46
47
|
# File 'lib/rail-locator-api.rb', line 43
def add_reader(name)
define_singleton_method(name) do |*args|
send("#{name}_setting").value(*args)
end
end
|
.add_writer(name, type) ⇒ Object
49
50
51
52
53
|
# File 'lib/rail-locator-api.rb', line 49
def add_writer(name, type)
define_singleton_method("#{name}=") do |value|
send("#{name}_setting=", DynamicSetting.build(value, type))
end
end
|
.generate_access_token ⇒ Object
11
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 11
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}&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).try(:dig, "access_token")
end
|
.register(name, value, type = nil) ⇒ Object
35
36
37
38
39
40
41
|
# File 'lib/rail-locator-api.rb', line 35
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
31
32
33
|
# File 'lib/rail-locator-api.rb', line 31
def setup
yield self
end
|