class NationalRailWrapper::Feeds::KnowledgeBase::Client
Public Instance Methods
incidents(parse_result: true)
click to toggle source
# File lib/national_rail_wrapper/feeds/knowledge_base/client.rb, line 6 def incidents(parse_result: true) request = KnowledgeBase::Requests::Incidents.new.run(auth_token) parse_result ? Ox.parse(request.response_body).to_json : request.response_body end
national_service_indicators(parse_result: true)
click to toggle source
# File lib/national_rail_wrapper/feeds/knowledge_base/client.rb, line 12 def national_service_indicators(parse_result: true) request = KnowledgeBase::Requests::NationalServiceIndicators.new.run(auth_token).response_body if parse_result KnowledgeBase::Parsers::NationalServiceIndicators.new(request).to_json else request.response_body end end
public_promotions(parse_result: true)
click to toggle source
# File lib/national_rail_wrapper/feeds/knowledge_base/client.rb, line 22 def public_promotions(parse_result: true) request = KnowledgeBase::Requests::PublicPromotions.new.run(auth_token) parse_result ? response.to_json : request.response_body end
stations(parse_result: true)
click to toggle source
# File lib/national_rail_wrapper/feeds/knowledge_base/client.rb, line 28 def stations(parse_result: true) request = KnowledgeBase::Requests::Stations.new.run(auth_token).response_body if parse_result KnowledgeBase::Parsers::Stations.new(request).to_json else request.response_body end end
ticket_restrictions(parse_result: true)
click to toggle source
# File lib/national_rail_wrapper/feeds/knowledge_base/client.rb, line 38 def ticket_restrictions(parse_result: true) request = KnowledgeBase::Requests::TicketRestrictions.new.run(auth_token) parse_result ? Ox.parse(request.response_body).to_json : request.response_body end
ticket_types(parse_result: true)
click to toggle source
# File lib/national_rail_wrapper/feeds/knowledge_base/client.rb, line 44 def ticket_types(parse_result: true) request = KnowledgeBase::Requests::TicketTypes.new.run(auth_token) parse_result ? Ox.parse(request.response_body).to_json : request.response_body end
tocs(parse_result: true)
click to toggle source
# File lib/national_rail_wrapper/feeds/knowledge_base/client.rb, line 50 def tocs(parse_result: true) request = KnowledgeBase::Requests::Tocs.new.run(auth_token).response_body if parse_result KnowledgeBase::Parsers::Tocs.new(request).to_json else request.response_body end end
Private Instance Methods
auth_token()
click to toggle source
# File lib/national_rail_wrapper/feeds/knowledge_base/client.rb, line 66 def auth_token return @auth_token if !@auth_token.nil? && @auth_token_expires_at >= Time.now response = Net::HTTP.post_form(URI('https://opendata.nationalrail.co.uk/authenticate'), @credentials) response.value # Raise an exception if not successful data = JSON.parse(response.body) token = data.fetch('token') # Token expires in 1 hour. Using 55 minutes provides a safety margin. @auth_token_expires_at = Time.now + (55 * 60) @auth_token = token end
parse_result(endpoint, response)
click to toggle source
# File lib/national_rail_wrapper/feeds/knowledge_base/client.rb, line 62 def parse_result(endpoint, response) "KnowledgeBase::Parsers::#{endpoint.camelize}".constantize.new(request).to_json end