# frozen_string_literal: true require 'httpx' require 'ap' require 'debug' # useful for debugging # fetch a dad joke in plain text print 'Enter a search term for a joke: ' search_term = gets.chomp # uncomment the following line to enter debugging session # binding.break # fetch a dad joke in JSON response = HTTPX.get('https://icanhazdadjoke.com/search', # API endpoint params: { 'term' => search_term }, # URL-encoded in the query string headers: { 'Accept' => 'application/json' }) # request JSON response response.body jokes = response.json['results'] if jokes.empty? puts "No jokes found involving \"#{search_term}\"" exit end puts "Here are #{jokes.length} jokes involving \"#{search_term}\":" jokes.each do |joke| puts "(#{joke['id']})\t #{joke['joke']}" end