class SyoboiCalendar::Responses::BaseResponse

Public Class Methods

new(faraday_response) click to toggle source

@param faraday_response [Faraday::Response]

# File lib/syoboi_calendar/responses/base_response.rb, line 7
def initialize(faraday_response)
  @faraday_response = faraday_response
end

Public Instance Methods

body() click to toggle source

@return [String]

# File lib/syoboi_calendar/responses/base_response.rb, line 12
def body
  faraday_response.body
end
code() click to toggle source

@return [Integer]

# File lib/syoboi_calendar/responses/base_response.rb, line 17
def code
  body[response_key]["Result"]["Code"].to_i
end
each(&block) click to toggle source

@note Implementation for Enumerable

# File lib/syoboi_calendar/responses/base_response.rb, line 22
def each(&block)
  resources.each(&block)
end
has_error?() click to toggle source

@return [Boolean]

# File lib/syoboi_calendar/responses/base_response.rb, line 27
def has_error?
  code != 200
end
headers() click to toggle source

@return [Faraday::Utils::Headers]

# File lib/syoboi_calendar/responses/base_response.rb, line 32
def headers
  faraday_response.headers
end
message() click to toggle source

@return [String, nil]

# File lib/syoboi_calendar/responses/base_response.rb, line 37
def message
  body[response_key]["Result"]["Message"]
end
resources() click to toggle source

@return [Array<SyoboiCalendar::Resources::BaseResource>]

# File lib/syoboi_calendar/responses/base_response.rb, line 42
def resources
  sources.map do |source|
    resource_class.new(source)
  end
end
status() click to toggle source

@return [Integer]

# File lib/syoboi_calendar/responses/base_response.rb, line 49
def status
  faraday_response.status
end

Private Instance Methods

faraday_response() click to toggle source

@return [Faraday::Response]

# File lib/syoboi_calendar/responses/base_response.rb, line 56
def faraday_response
  @faraday_response
end
resource_class() click to toggle source

@return [Class]

# File lib/syoboi_calendar/responses/base_response.rb, line 61
def resource_class
  raise ::NotImplementedError
end
response_key() click to toggle source

@return [String]

# File lib/syoboi_calendar/responses/base_response.rb, line 66
def response_key
  raise ::NotImplementedError
end
source_or_sources() click to toggle source

@return [Array<Hash>, Hash]

# File lib/syoboi_calendar/responses/base_response.rb, line 71
def source_or_sources
  raise ::NotImplementedError
end
sources() click to toggle source

@return [Array<Hash>]

# File lib/syoboi_calendar/responses/base_response.rb, line 76
def sources
  if has_error?
    []
  else
    object = source_or_sources
    case
    when object.nil?
      []
    when object.respond_to?(:to_ary)
      object.to_ary || [object]
    else
      [object]
    end
  end
end