Class: Honey::Response

Inherits:
Object
  • Object
show all
Defined in:
lib/honey/response.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(http_response) ⇒ Response

Returns a new instance of Response.



7
8
9
# File 'lib/honey/response.rb', line 7

def initialize(http_response)
  @data = OpenStruct.new(http_response.parsed_response["message"])
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(method, *args, &block) ⇒ Object



11
12
13
14
15
16
17
# File 'lib/honey/response.rb', line 11

def method_missing(method, *args, &block)
  if method.to_s.end_with?('=')
    data.try(method, *args)
  else
    data.try(method)
  end
end

Instance Attribute Details

#dataObject

Returns the value of attribute data.



5
6
7
# File 'lib/honey/response.rb', line 5

def data
  @data
end

Instance Method Details

#cancelled?Boolean

Returns:

  • (Boolean)


31
32
33
# File 'lib/honey/response.rb', line 31

def cancelled?
  data.cancelled == "Yes"
end

#errorObject



39
40
41
# File 'lib/honey/response.rb', line 39

def error
  Honey::Error.new(data.code.to_i)
end

#failed?Boolean

Returns:

  • (Boolean)


27
28
29
# File 'lib/honey/response.rb', line 27

def failed?
  data.code.present? && data.code.to_i != 100
end

#inspectObject



19
20
21
# File 'lib/honey/response.rb', line 19

def inspect
  data.inspect
end

#logObject



43
44
45
# File 'lib/honey/response.rb', line 43

def log
  "[#{data.code}] #{message}"
end

#messageObject



47
48
49
# File 'lib/honey/response.rb', line 47

def message
  data.error || data.details
end

#notesObject



55
56
57
# File 'lib/honey/response.rb', line 55

def notes
  data.warehousenotes || ""
end

#shipped?Boolean

Returns:

  • (Boolean)


35
36
37
# File 'lib/honey/response.rb', line 35

def shipped?
  data.status == "Shipped"
end

#successful?Boolean

Returns:

  • (Boolean)


23
24
25
# File 'lib/honey/response.rb', line 23

def successful?
  !failed?
end

#tracking_numbersObject



51
52
53
# File 'lib/honey/response.rb', line 51

def tracking_numbers
  (1..5).map { |i| data.try(:"trackingnumber#{i}") }.compact.join(',')
end