Module: Wire

Defined in:
lib/wirepayment.rb,
lib/wire/client.rb,
lib/wire/errors.rb,
lib/wire/version.rb,
lib/wire/webhook.rb,
lib/wire/resources/base.rb,
lib/wire/resources/events.rb,
lib/wire/resources/charges.rb,
lib/wire/resources/payment_intents.rb,
lib/wire/resources/webhook_endpoints.rb

Overview

Wire is the top-level namespace for the Wire payment API SDK.

client = Wire::Client.new("sk_live_...")
pi = client.payment_intents.create(amount: 50_000, currency: "MNT")

Defined Under Namespace

Modules: Resources, Webhook Classes: Client, ConnectionError, Error, NetHTTPAdapter, Response, SignatureVerificationError, TimeoutError, WireError

Constant Summary collapse

DEFAULT_BASE_URL =
"https://api.wire.mn"
VERSION =
"1.0.0"

Class Method Summary collapse

Class Method Details

.parse_error(status, body) ⇒ Object

Decode the Wire error envelope; fall back to a generic error.

The api_key is never read from or echoed into the error.



44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# File 'lib/wire/errors.rb', line 44

def self.parse_error(status, body)
  begin
    env = JSON.parse(body)
    err = env.is_a?(Hash) ? env["error"] : nil
    if err.is_a?(Hash)
      return WireError.new(
        err["message"] || "request failed",
        type: err["type"] || "api_error",
        code: err["code"],
        param: err["param"],
        request_id: err["request_id"],
        doc_url: err["doc_url"],
        operator_decline_code: err["operator_decline_code"],
        status_code: status
      )
    end
  rescue JSON::ParserError
    # fall through to generic error
  end

  WireError.new(
    "unexpected response (status #{status})",
    type: "api_error",
    status_code: status
  )
end