lib/marver/finders/serie_finder.rb
require './lib/marver/api/client'
require './lib/marver/data_container'
require './lib/marver/entities/serie'
module Marver
class SerieFinder
ALLOWED_PARAMS = [:name, :modifiedSince, :creators, :characters, :series,
:comics, :stories, :orderBy, :limit, :offset]
ALLOWED_PARAMS.each do |param|
parameterized_param = StringHelper.parameterize(param.to_s)
define_method("find_by_#{parameterized_param}") do |value|
find({ "#{param}".to_sym => value })
end
end
private
def find(conditions = {})
FinderParamFilter.filter!(conditions, ALLOWED_PARAMS)
response = Marver::API::Client.new.get(:series, conditions)
results = Marver::DataContainer.new(response).results
Marver::Factory::Serie.new(results).build
end
end
end