Class: Payflow::Providers::Asaas::Subscription

Inherits:
Object
  • Object
show all
Defined in:
lib/payflow/providers/asaas/subscription.rb

Constant Summary collapse

BASE_URL =
"https://api.asaas.com/v3"

Instance Method Summary collapse

Constructor Details

#initialize(client) ⇒ Subscription

Returns a new instance of Subscription.



9
10
11
# File 'lib/payflow/providers/asaas/subscription.rb', line 9

def initialize(client)
  @client = client
end

Instance Method Details

#cancel(provider_subscription_id) ⇒ Object



28
29
30
31
# File 'lib/payflow/providers/asaas/subscription.rb', line 28

def cancel(provider_subscription_id)
  http_client.delete("/subscriptions/#{provider_subscription_id}")
  { id: provider_subscription_id, provider: :asaas, status: "cancelled" }
end

#create(customer_id:, plan_id:) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/payflow/providers/asaas/subscription.rb', line 13

def create(customer_id:, plan_id:, **)
  response = http_client.post("/subscriptions") do |req|
    req.body = {
      customer: customer_id,
      billingType: "CREDIT_CARD",
      value: plan_value(plan_id),
      cycle: "MONTHLY",
      description: "Plan #{plan_id}"
    }.to_json
  end

  data = JSON.parse(response.body)
  { id: data["id"], provider: :asaas, status: "active" }
end