lib/rexpense/client.rb
require "rexpense/request"
require "rexpense/response"
module Rexpense
class Client
attr_reader :http
def initialize(token)
@http = Http.new(token)
end
def authenticated?
http.get("/organizations") { |response| response.code == 200 }
rescue RequestError => e
raise e unless [401, 403].include?(e.code)
false
end
# Define available endpoints
def activities
Rexpense::Resources::Activity.new(http)
end
def advancement_devolutions
Rexpense::Resources::AdvancementDevolution.new(http)
end
def pre_expenses
Rexpense::Resources::PreExpense.new(http)
end
%w(organization expense advancement reimbursement tag webhook membership comment).each do |endpoint|
define_method(endpoint + 's') do
Object.const_get("Rexpense::Resources::#{endpoint.capitalize}").new(http)
end
end
end
end