class NewsApi::NewsApiRepository

Public Class Methods

new(api_key) click to toggle source
# File lib/metonym/lib/repositories/news_api_repository.rb, line 5
def initialize(api_key)
  @news_api_key = api_key
  @uri = 'https://newsapi.org/v2/'
end

Public Instance Methods

everything(query:) click to toggle source
# File lib/metonym/lib/repositories/news_api_repository.rb, line 10
def everything(query:)
  request(@uri, query: query, resource: 'everything')
end
sources(query:) click to toggle source
# File lib/metonym/lib/repositories/news_api_repository.rb, line 18
def sources(query:)
  request(@uri, query: query, resource: 'sources')
end
top_headlines(query:) click to toggle source
# File lib/metonym/lib/repositories/news_api_repository.rb, line 14
def top_headlines(query:)
  request(@uri, query: query, resource: 'top-headlines')
end

Private Instance Methods

prepare_arguments(query) click to toggle source
# File lib/metonym/lib/repositories/news_api_repository.rb, line 24
def prepare_arguments(query)
  query['from'] = query.key?(:from) ? query[:from].strftime('%FT%T%:z') : nil
  query['to']   = query.key?(:to)   ? query[:to].strftime('%FT%T%:z') : nil
  query['apiKey'] = @news_api_key
  query
end