Class: Arafa::Airtime::Wasiliana
- Inherits:
-
Airtime::Base
- Object
- Airtime::Base
- Arafa::Airtime::Wasiliana
- Defined in:
- lib/arafa/airtime/wasiliana.rb
Overview
Wasiliana airtime request adapter (§1.6). Like Wasiliana's SMS adapter,
the response carries no per-recipient breakdown — just an overall
status/message pair — so success/failure is decided once for the
whole request rather than per phone number.
Constant Summary collapse
- CONTRACT =
Contracts::AirtimeContract
Instance Method Summary collapse
Instance Method Details
#build_payload ⇒ Object
26 27 28 29 30 31 32 33 34 35 |
# File 'lib/arafa/airtime/wasiliana.rb', line 26 def build_payload payload = { phone_number: phone_number, currency_code: currency_code, amount: amount, callback: callback } payload[:airtime_uid] = airtime_uid unless airtime_uid.nil? payload end |
#endpoint ⇒ Object
15 16 17 |
# File 'lib/arafa/airtime/wasiliana.rb', line 15 def endpoint "https://api.wasiliana.com/api/v1/airtime/request" end |
#headers ⇒ Object
19 20 21 22 23 24 |
# File 'lib/arafa/airtime/wasiliana.rb', line 19 def headers { "Content-Type" => "application/json", "apiKey" => Arafa.config.wasiliana.api_key } end |
#parse_response(response) ⇒ Object
37 38 39 40 41 42 43 44 45 |
# File 'lib/arafa/airtime/wasiliana.rb', line 37 def parse_response(response) body = response.body if response.status.between?(200, 299) && body.is_a?(Hash) && body["status"] == "success" build_success(body) else build_failure(response) end end |