class Validate::GnewsQueryValidator
Constants
- COUNTRIES
Public Class Methods
new(api_key, args:, format:)
click to toggle source
# File lib/metonym/lib/validators/gnews_query_validator.rb, line 20 def initialize(api_key, args:, format:) raise 'API Key is required' unless key_present?(api_key) raise 'Invalid parameter sequence' unless query_valid?(args) raise 'Invalid country sent' unless country_valid?(args) raise 'Invalid language sent' unless language_valid?(args) raise 'Invalid date or dates sent' unless date_valid?(args) true end
Private Instance Methods
country_valid?(args)
click to toggle source
# File lib/metonym/lib/validators/gnews_query_validator.rb, line 39 def country_valid?(args) args[:country].nil? ? true : COUNTRIES.include?(args[:country].downcase) end
date_valid?(args)
click to toggle source
# File lib/metonym/lib/validators/gnews_query_validator.rb, line 43 def date_valid?(args) if args[:mindate].nil? && args[:maxdate].nil? true elsif args[:mindate] && args[:maxdate] (args[:mindate].respond_to?(:strftime) && args[:maxdate].respond_to?(:strftime)) elsif args[:mindate] && args[:maxdate].nil? args[:mindate].respond_to?(:strftime) elsif args[:mindate].nil? && args[:maxdate] args[:maxdate].respond_to?(:strftime) end end
query_valid?(args)
click to toggle source
# File lib/metonym/lib/validators/gnews_query_validator.rb, line 32 def query_valid?(args) search_template = %i[q max lang country mindate maxdate in] top_news_template = %i[lang country max image] template = search_template + top_news_template (args.keys - template).empty? end