Module: Twsms2::Formatter

Included in:
Client
Defined in:
lib/twsms2/formatter.rb

Instance Method Summary collapse

Instance Method Details

#format_balance_info(original_info) ⇒ Object



41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# File 'lib/twsms2/formatter.rb', line 41

def format_balance_info(original_info)
  new_info = {
    access_success: false,
    message_quota: 0,
    error: nil
  }

  code_text  = match_string(/<code>(?<code>\w+)<\/code>/, original_info)
  point_text = match_string(/<point>(?<point>\d+)<\/point>/, original_info)

  new_info[:access_success] = !code_text.nil? && !point_text.nil? && code_text == '00000'

  if new_info[:access_success]
    new_info[:message_quota] = point_text.to_i
  else
    new_info[:error] = code_text.nil? ? "TWSMS:CODE_NOT_FOUND" : "TWSMS:#{code_text}".upcase
  end

  new_info
end

#format_send_message_info(original_info) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/twsms2/formatter.rb', line 20

def format_send_message_info(original_info)
  new_info = {
    access_success: false,
    message_id: nil,
    error: nil
  }

  code_text  = match_string(/<code>(?<code>\w+)<\/code>/, original_info)
  message_id_text = match_string(/<msgid>(?<message_id>\d+)<\/msgid>/, original_info)

  new_info[:access_success] = !code_text.nil? && !message_id_text.nil? && code_text == '00000'

  if new_info[:access_success]
    new_info[:message_id] = message_id_text
  else
    new_info[:error] = code_text.nil? ? "TWSMS:CODE_NOT_FOUND" : "TWSMS:#{code_text}".upcase
  end

  new_info
end

#format_time_string(time) ⇒ Object



8
9
10
11
12
# File 'lib/twsms2/formatter.rb', line 8

def format_time_string(time)
  return nil if time.nil?
  new_time = to_asia_taipei_timezone(time)
  new_time.strftime('%Y%m%d%H%M')
end

#match_string(rule, string) ⇒ Object



3
4
5
6
# File 'lib/twsms2/formatter.rb', line 3

def match_string(rule, string)
  match_data = rule.match(string)
  match_data.nil? ? nil : match_data[1]
end

#to_asia_taipei_timezone(time) ⇒ Object



14
15
16
17
18
# File 'lib/twsms2/formatter.rb', line 14

def to_asia_taipei_timezone(time)
  utc_time = time.utc? ? time.dup : time.dup.utc
  asia_taipei_time = utc_time.getlocal('+08:00')
  asia_taipei_time
end