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)