Class: IletimerkeziSdk::Responses::ReportResponse

Inherits:
BaseResponse
  • Object
show all
Includes:
Enumerable
Defined in:
lib/iletimerkezi_sdk/responses/report_response.rb

Constant Summary collapse

ORDER_STATUS_MESSAGES =
{
  113 => 'SENDING',
  114 => 'COMPLETED',
  115 => 'CANCELED'
}.freeze
MESSAGE_STATUS_MESSAGES =
{
  110 => 'WAITING',
  111 => 'DELIVERED',
  112 => 'UNDELIVERED'
}.freeze

Instance Attribute Summary

Attributes inherited from BaseResponse

#data, #message, #status_code

Instance Method Summary collapse

Methods inherited from BaseResponse

#get_data, #get_message, #get_status_code, #ok?

Constructor Details

#initialize(response_body, http_status_code, current_page = 1) ⇒ ReportResponse

Returns a new instance of ReportResponse.



18
19
20
21
22
# File 'lib/iletimerkezi_sdk/responses/report_response.rb', line 18

def initialize(response_body, http_status_code, current_page = 1)
  @messages = []
  @current_page = current_page
  super(response_body, http_status_code)
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class IletimerkeziSdk::Responses::BaseResponse

Instance Method Details

#current_pageObject



77
78
79
# File 'lib/iletimerkezi_sdk/responses/report_response.rb', line 77

def current_page
  @current_page
end

#deliveredObject



45
46
47
# File 'lib/iletimerkezi_sdk/responses/report_response.rb', line 45

def delivered
  @data.dig('order', 'delivered') || 0
end

#each(&block) ⇒ Object



24
25
26
# File 'lib/iletimerkezi_sdk/responses/report_response.rb', line 24

def each(&block)
  @messages.each(&block)
end

#has_more_pages?Boolean

Returns:

  • (Boolean)


81
82
83
# File 'lib/iletimerkezi_sdk/responses/report_response.rb', line 81

def has_more_pages?
  @current_page < total_pages
end

#messagesObject



69
70
71
# File 'lib/iletimerkezi_sdk/responses/report_response.rb', line 69

def messages
  @messages
end

#order_idObject



28
29
30
# File 'lib/iletimerkezi_sdk/responses/report_response.rb', line 28

def order_id
  @data.dig('order', 'id') || ''
end

#order_statusObject



32
33
34
35
# File 'lib/iletimerkezi_sdk/responses/report_response.rb', line 32

def order_status
  status = @data.dig('order', 'status') || ''
  ORDER_STATUS_MESSAGES[status] || status
end

#order_status_codeObject



37
38
39
# File 'lib/iletimerkezi_sdk/responses/report_response.rb', line 37

def order_status_code
  (@data.dig('order', 'status') || 0).to_i
end

#senderObject



65
66
67
# File 'lib/iletimerkezi_sdk/responses/report_response.rb', line 65

def sender
  @data.dig('order', 'sender') || ''
end

#sent_atObject



61
62
63
# File 'lib/iletimerkezi_sdk/responses/report_response.rb', line 61

def sent_at
  @data.dig('order', 'sendAt') || ''
end

#submit_atObject



57
58
59
# File 'lib/iletimerkezi_sdk/responses/report_response.rb', line 57

def submit_at
  @data.dig('order', 'submitAt') || ''
end

#totalObject



41
42
43
# File 'lib/iletimerkezi_sdk/responses/report_response.rb', line 41

def total
  (@data.dig('order', 'total') || 0).to_i
end

#total_pagesObject



73
74
75
# File 'lib/iletimerkezi_sdk/responses/report_response.rb', line 73

def total_pages
  (Float(total) / 1000.0).ceil
end

#undeliveredObject



49
50
51
# File 'lib/iletimerkezi_sdk/responses/report_response.rb', line 49

def undelivered
  @data.dig('order', 'undelivered') || 0
end

#waitingObject



53
54
55
# File 'lib/iletimerkezi_sdk/responses/report_response.rb', line 53

def waiting
  @data.dig('order', 'waiting') || 0
end