ElixirMpesa.Response (ElixirMpesa v0.2.0)

View Source

A successful M-Pesa response.

M-Pesa returns keys such as "output_TransactionID" and "output_ConversationID". This struct lifts the ones present on every response into named fields, and keeps the complete decoded body on :raw so nothing is lost.

{:ok, response} = ElixirMpesa.c2b(attrs)
response.transaction_id          #=> "49XCD123F6"
response.raw["output_ThirdPartyConversationID"]

Summary

Functions

Builds a response from a decoded M-Pesa body.

Types

t()

@type t() :: %ElixirMpesa.Response{
  code: String.t() | nil,
  conversation_id: String.t() | nil,
  description: String.t() | nil,
  raw: map(),
  third_party_conversation_id: String.t() | nil,
  transaction_id: String.t() | nil
}

Functions

new(body)

@spec new(map()) :: t()

Builds a response from a decoded M-Pesa body.

Examples

iex> body = %{"output_ResponseCode" => "INS-0", "output_TransactionID" => "49XCD123F6"}
iex> response = ElixirMpesa.Response.new(body)
iex> {response.code, response.transaction_id}
{"INS-0", "49XCD123F6"}