Class: ActivePublicResources::Drivers::Quizlet

Inherits:
Driver
  • Object
show all
Defined in:
lib/active_public_resources/drivers/quizlet.rb

Constant Summary collapse

DRIVER_NAME =
"quizlet"

Instance Method Summary collapse

Constructor Details

#initialize(config_options = {}) ⇒ Quizlet

Returns a new instance of Quizlet.



9
10
11
12
# File 'lib/active_public_resources/drivers/quizlet.rb', line 9

def initialize(config_options={})
  validate_options(config_options, [:client_id])
  @client_id = config_options[:client_id]
end

Instance Method Details

#perform_request(request_criteria) ⇒ Object

Raises:

  • (StandardError)


14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/active_public_resources/drivers/quizlet.rb', line 14

def perform_request(request_criteria)
  raise StandardError.new("driver has not been initialized properly") unless @client_id.present?
  request_criteria.validate_presence!([:query])

  uri = URI('https://api.quizlet.com/2.0/search/sets')
  params = {
    'q'         => request_criteria.query,
    'page'      => request_criteria.page     || 1,
    'per_page'  => request_criteria.per_page || 25,
    'client_id' => @client_id
  }
  uri.query = URI.encode_www_form(params)
  res = Net::HTTP.get_response(uri)
  results = JSON.parse(res.body)

  return parse_results(request_criteria, results)
end