lib/smspartner/client.rb in smspartner-0.1.0 vs lib/smspartner/client.rb in smspartner-0.1.1
- old
+ new
@@ -8,10 +8,12 @@
@config = config
end
SEND_SMS_URL = 'https://api.smspartner.fr/v1/send'.freeze
+ SMS_STATUS_URL = 'https://api.smspartner.fr/v1/message-status'.freeze
+
MY_DATA_URL = 'https://api.smspartner.fr/v1/me'.freeze
ALLOWED_CONFIG_OVERRIDE = %i[sandbox sender range_value].freeze
RANGE_VALUES = { premium: 1, low_cost: 2 }.freeze
@@ -24,10 +26,17 @@
ret = Response.new(res.parsed_response)
raise SmsSendError.new(ret) if !ret.success? && config[:raise_on_error]
ret
end
+ def sms_status(to:, message_id:, **config)
+ res = status_request(to, message_id, config)
+ ret = Response.new(res.parsed_response)
+ raise SmsStatusError.new(ret) if !ret.success? && config[:raise_on_error]
+ ret
+ end
+
def me
HTTParty.get(
MY_DATA_URL,
query: {
apiKey: @config.api_key
@@ -48,9 +57,21 @@
body,
config.select { |k, _v| ALLOWED_CONFIG_OVERRIDE.include?(k) }.compact
).to_json,
headers: {
content_type: 'application/json'
+ }
+ )
+ end
+
+ def status_request(to, message_id, config)
+ final_config = @config.to_h.merge!(config)
+ HTTParty.get(
+ SMS_STATUS_URL,
+ query: {
+ phoneNumber: to,
+ messageId: message_id,
+ apiKey: final_config[:api_key]
}
)
end
def sms_json(to, body, config)