lib/kotsms2/formatter.rb in kotsms2-1.0.1 vs lib/kotsms2/formatter.rb in kotsms2-1.1.0
- old
+ new
@@ -23,9 +23,48 @@
utc_time = time.utc? ? time.dup : time.dup.utc
asia_taipei_time = utc_time.getlocal('+08:00')
asia_taipei_time
end
+ def message_status_sanitize(original_text)
+ status_table = {
+ 'SUCCESSED' => 'delivered',
+ 'DELIVRD' => 'delivered',
+ 'EXPIRED' => 'expired',
+ 'DELETED' => 'deleted',
+ 'UNDELIV' => 'undelivered',
+ 'ACCEPTD' => 'transmitting',
+ 'UNKNOWN' => 'unknown',
+ 'REJECTD' => 'rejected',
+ 'SYNTAXE' => 'incorrect_sms_system_syntax'
+ }
+
+ new_text = status_table[original_text]
+ new_text.nil? ? 'status_undefined' : new_text
+ end
+
+ def format_message_status(original_info)
+ new_info = {
+ access_success: false,
+ is_delivered: false,
+ message_status: nil,
+ error: nil
+ }
+
+ status_text = match_string(/^statusstr=(?<status>\w+)$/, original_info)
+
+ new_info[:access_success] = !status_text.nil? && status_text != 'MEMBERERROR' && status_text != 'NOSMS'
+
+ if new_info[:access_success]
+ new_info[:message_status] = message_status_sanitize(status_text)
+ new_info[:is_delivered] = new_info[:message_status] == 'delivered'
+ else
+ new_info[:error] = status_text.nil? ? "KOTSMS:CODE_NOT_FOUND" : "KOTSMS:#{status_text}".upcase
+ end
+
+ new_info
+ end
+
def format_send_message_info(original_info)
new_info = {
access_success: false,
message_id: nil,
error: nil
\ No newline at end of file