Class: WhopSDK::Resources::Memberships

Inherits:
Object
  • Object
show all
Defined in:
lib/whop_sdk/resources/memberships.rb

Overview

Memberships

Instance Method Summary collapse

Constructor Details

#initialize(client:) ⇒ Memberships

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 Memberships.

Parameters:



282
283
284
# File 'lib/whop_sdk/resources/memberships.rb', line 282

def initialize(client:)
  @client = client
end

Instance Method Details

#add_free_days(id, free_days:, request_options: {}) ⇒ WhopSDK::Models::Membership

Some parameter documentations has been truncated, see Models::MembershipAddFreeDaysParams for more details.

Add free days to extend a membership’s current billing period, expiration date, or Stripe trial.

Required permissions:

  • ‘member:manage`

  • ‘member:email:read`

  • ‘member:basic:read`

Parameters:

  • id (String)

    The unique identifier of the membership.

  • free_days (Integer)

    The number of free days to add (1-1095). Extends the billing period, expiration

  • request_options (WhopSDK::RequestOptions, Hash{Symbol=>Object}, nil)

Returns:

See Also:



149
150
151
152
153
154
155
156
157
158
# File 'lib/whop_sdk/resources/memberships.rb', line 149

def add_free_days(id, params)
  parsed, options = WhopSDK::MembershipAddFreeDaysParams.dump_request(params)
  @client.request(
    method: :post,
    path: ["memberships/%1$s/add_free_days", id],
    body: parsed,
    model: WhopSDK::Membership,
    options: options
  )
end

#cancel(id, cancellation_mode: nil, request_options: {}) ⇒ WhopSDK::Models::Membership

Cancel a membership either immediately or at the end of the current billing period. Immediate cancellation revokes access right away.

Required permissions:

  • ‘membership:cancel`

  • ‘member:email:read`

  • ‘member:basic:read`

Parameters:

Returns:

See Also:



180
181
182
183
184
185
186
187
188
189
# File 'lib/whop_sdk/resources/memberships.rb', line 180

def cancel(id, params = {})
  parsed, options = WhopSDK::MembershipCancelParams.dump_request(params)
  @client.request(
    method: :post,
    path: ["memberships/%1$s/cancel", id],
    body: parsed,
    model: WhopSDK::Membership,
    options: options
  )
end

#list(after: nil, before: nil, cancel_options: nil, company_id: nil, created_after: nil, created_before: nil, direction: nil, first: nil, last: nil, order: nil, plan_ids: nil, product_ids: nil, promo_code_ids: nil, statuses: nil, user_ids: nil, request_options: {}) ⇒ WhopSDK::Internal::CursorPage<WhopSDK::Models::MembershipListResponse>

Some parameter documentations has been truncated, see Models::MembershipListParams for more details.

Returns a paginated list of memberships, with optional filtering by product, plan, status, and user.

Required permissions:

  • ‘member:basic:read`

  • ‘member:email:read`

Parameters:

  • after (String, nil)

    Returns the elements in the list that come after the specified cursor.

  • before (String, nil)

    Returns the elements in the list that come before the specified cursor.

  • cancel_options (Array<Symbol, WhopSDK::Models::CancelOptions>, nil)

    Filter to only memberships matching these cancellation reasons.

  • company_id (String, nil)

    The unique identifier of the company to list memberships for. Required when usin

  • created_after (Time, nil)

    Only return memberships created after this timestamp.

  • created_before (Time, nil)

    Only return memberships created before this timestamp.

  • direction (Symbol, WhopSDK::Models::Direction, nil)

    The direction of the sort.

  • first (Integer, nil)

    Returns the first n elements from the list.

  • last (Integer, nil)

    Returns the last n elements from the list.

  • order (Symbol, WhopSDK::Models::MembershipListParams::Order, nil)

    Which columns can be used to sort.

  • plan_ids (Array<String>, nil)

    Filter to only memberships belonging to these plan identifiers.

  • product_ids (Array<String>, nil)

    Filter to only memberships belonging to these product identifiers.

  • promo_code_ids (Array<String>, nil)

    Filter to only memberships that used these promo code identifiers.

  • statuses (Array<Symbol, WhopSDK::Models::MembershipStatus>, nil)

    Filter to only memberships matching these statuses.

  • user_ids (Array<String>, nil)

    Filter to only memberships belonging to these user identifiers.

  • request_options (WhopSDK::RequestOptions, Hash{Symbol=>Object}, nil)

Returns:

See Also:



113
114
115
116
117
118
119
120
121
122
123
124
# File 'lib/whop_sdk/resources/memberships.rb', line 113

def list(params = {})
  parsed, options = WhopSDK::MembershipListParams.dump_request(params)
  query = WhopSDK::Internal::Util.encode_query_params(parsed)
  @client.request(
    method: :get,
    path: "memberships",
    query: query,
    page: WhopSDK::Internal::CursorPage,
    model: WhopSDK::Models::MembershipListResponse,
    options: options
  )
end

#pause(id, void_payments: nil, request_options: {}) ⇒ WhopSDK::Models::Membership

Some parameter documentations has been truncated, see Models::MembershipPauseParams for more details.

Pause a membership’s recurring payments. The customer retains access but will not be charged until the membership is resumed.

Required permissions:

  • ‘member:manage`

  • ‘member:email:read`

  • ‘member:basic:read`

Parameters:

  • id (String)

    The unique identifier of the membership to pause.

  • void_payments (Boolean, nil)

    Whether to void any outstanding past-due payments on this membership, preventing

  • request_options (WhopSDK::RequestOptions, Hash{Symbol=>Object}, nil)

Returns:

See Also:



214
215
216
217
218
219
220
221
222
223
# File 'lib/whop_sdk/resources/memberships.rb', line 214

def pause(id, params = {})
  parsed, options = WhopSDK::MembershipPauseParams.dump_request(params)
  @client.request(
    method: :post,
    path: ["memberships/%1$s/pause", id],
    body: parsed,
    model: WhopSDK::Membership,
    options: options
  )
end

#resume(id, request_options: {}) ⇒ WhopSDK::Models::Membership

Resume a previously paused membership’s recurring payments. Billing resumes on the next cycle.

Required permissions:

  • ‘member:manage`

  • ‘member:email:read`

  • ‘member:basic:read`

Parameters:

  • id (String)

    The unique identifier of the membership to resume.

  • request_options (WhopSDK::RequestOptions, Hash{Symbol=>Object}, nil)

Returns:

See Also:



243
244
245
246
247
248
249
250
# File 'lib/whop_sdk/resources/memberships.rb', line 243

def resume(id, params = {})
  @client.request(
    method: :post,
    path: ["memberships/%1$s/resume", id],
    model: WhopSDK::Membership,
    options: params[:request_options]
  )
end

#retrieve(id, request_options: {}) ⇒ WhopSDK::Models::Membership

Retrieves the details of an existing membership.

Required permissions:

  • ‘member:basic:read`

  • ‘member:email:read`

Parameters:

  • id (String)

    The unique identifier of the membership, or a license key.

  • request_options (WhopSDK::RequestOptions, Hash{Symbol=>Object}, nil)

Returns:

See Also:



23
24
25
26
27
28
29
30
# File 'lib/whop_sdk/resources/memberships.rb', line 23

def retrieve(id, params = {})
  @client.request(
    method: :get,
    path: ["memberships/%1$s", id],
    model: WhopSDK::Membership,
    options: params[:request_options]
  )
end

#uncancel(id, request_options: {}) ⇒ WhopSDK::Models::Membership

Reverse a pending cancellation for a membership that was scheduled to cancel at period end.

Required permissions:

  • ‘member:manage`

  • ‘member:email:read`

  • ‘member:basic:read`

Parameters:

  • id (String)

    The unique identifier of the membership to uncancel.

  • request_options (WhopSDK::RequestOptions, Hash{Symbol=>Object}, nil)

Returns:

See Also:



270
271
272
273
274
275
276
277
# File 'lib/whop_sdk/resources/memberships.rb', line 270

def uncancel(id, params = {})
  @client.request(
    method: :post,
    path: ["memberships/%1$s/uncancel", id],
    model: WhopSDK::Membership,
    options: params[:request_options]
  )
end

#update(id, metadata: nil, request_options: {}) ⇒ WhopSDK::Models::Membership

Some parameter documentations has been truncated, see Models::MembershipUpdateParams for more details.

Update a membership’s metadata or other mutable properties.

Required permissions:

  • ‘member:manage`

  • ‘member:email:read`

  • ‘member:basic:read`

Parameters:

  • id (String)

    The unique identifier of the membership to update.

  • metadata (Hash{Symbol=>Object}, nil)

    A JSON object of key-value pairs to store on the membership. Replaces any existi

  • request_options (WhopSDK::RequestOptions, Hash{Symbol=>Object}, nil)

Returns:

See Also:



54
55
56
57
58
59
60
61
62
63
# File 'lib/whop_sdk/resources/memberships.rb', line 54

def update(id, params = {})
  parsed, options = WhopSDK::MembershipUpdateParams.dump_request(params)
  @client.request(
    method: :patch,
    path: ["memberships/%1$s", id],
    body: parsed,
    model: WhopSDK::Membership,
    options: options
  )
end