require 'footrest/client'
require 'bearcat/api_array'
require 'bearcat/client/assignments'
require 'bearcat/client/courses'
require 'bearcat/client/enrollments'
require 'bearcat/client/outcome_groups'
require 'bearcat/client/outcomes'
require 'bearcat/client/sections'
require 'bearcat/client/o_auth2'
require 'bearcat/client/groups'
require 'bearcat/client/conferences'
require 'bearcat/client/users'
require 'bearcat/client/reports'
require 'bearcat/client/accounts'
require 'bearcat/client/submissions'
require 'bearcat/client/conversations'

module Bearcat
  class Client < Footrest::Client

    include Assignments
    include Accounts
    include Courses
    include Enrollments
    include OutcomeGroups
    include Outcomes
    include Sections
    include OAuth2
    include Groups
    include Conferences
    include Users
    include Reports
    include Submissions
    include Conversations


    # Override Footrest request for ApiArray support
    def request(method, &block)
      ApiArray::process_response(connection.send(method, &block), self)
    end
  end

end