Class: Dodopayments::Resources::Entitlements::Grants

Inherits:
Object
  • Object
show all
Defined in:
lib/dodopayments/resources/entitlements/grants.rb

Instance Method Summary collapse

Constructor Details

#initialize(client:) ⇒ Grants

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns a new instance of Grants.

Parameters:



72
73
74
# File 'lib/dodopayments/resources/entitlements/grants.rb', line 72

def initialize(client:)
  @client = client
end

Instance Method Details

#list(id, customer_id: nil, page_number: nil, page_size: nil, status: nil, request_options: {}) ⇒ Dodopayments::Internal::DefaultPageNumberPagination<Dodopayments::Models::Entitlements::EntitlementGrant>

GET /entitlements/id/grants (public API)

Parameters:

Returns:

See Also:



26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/dodopayments/resources/entitlements/grants.rb', line 26

def list(id, params = {})
  parsed, options = Dodopayments::Entitlements::GrantListParams.dump_request(params)
  query = Dodopayments::Internal::Util.encode_query_params(parsed)
  @client.request(
    method: :get,
    path: ["entitlements/%1$s/grants", id],
    query: query,
    page: Dodopayments::Internal::DefaultPageNumberPagination,
    model: Dodopayments::Entitlements::EntitlementGrant,
    options: options
  )
end

#revoke(grant_id, id:, request_options: {}) ⇒ Dodopayments::Models::Entitlements::EntitlementGrant

Revokes a single entitlement grant for the caller’s business. For LicenseKey integrations, also disables the backing license key. Idempotent: re-revoking an already-revoked grant returns 200 with current state. The revocation reason is always set to “manual” for API-initiated revocations.

Parameters:

Returns:

See Also:



55
56
57
58
59
60
61
62
63
64
65
66
67
# File 'lib/dodopayments/resources/entitlements/grants.rb', line 55

def revoke(grant_id, params)
  parsed, options = Dodopayments::Entitlements::GrantRevokeParams.dump_request(params)
  id =
    parsed.delete(:id) do
      raise ArgumentError.new("missing required path argument #{_1}")
    end
  @client.request(
    method: :delete,
    path: ["entitlements/%1$s/grants/%2$s", id, grant_id],
    model: Dodopayments::Entitlements::EntitlementGrant,
    options: options
  )
end