Class: WhopSDK::Resources::Experiences

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

Instance Method Summary collapse

Constructor Details

#initialize(client:) ⇒ Experiences

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

Parameters:



249
250
251
# File 'lib/whop_sdk/resources/experiences.rb', line 249

def initialize(client:)
  @client = client
end

Instance Method Details

#attach(id, product_id: , request_options: {}) ⇒ WhopSDK::Models::Experience

Adds an experience to an product, making it accessible to the product’s customers.

Required permissions:

  • ‘experience:attach`

Parameters:

  • id (String)

    The ID of the Experience to be added to an Access Pass.

  • product_id (String)

    The ID of the Access Pass to add the Experience to.

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

Returns:

See Also:



173
174
175
176
177
178
179
180
181
182
# File 'lib/whop_sdk/resources/experiences.rb', line 173

def attach(id, params)
  parsed, options = WhopSDK::ExperienceAttachParams.dump_request(params)
  @client.request(
    method: :post,
    path: ["experiences/%1$s/attach", id],
    body: parsed,
    model: WhopSDK::Experience,
    options: options
  )
end

#create(app_id: , company_id: , name: nil, section_id: nil, request_options: {}) ⇒ WhopSDK::Models::Experience

Required permissions:

  • ‘experience:create`

Parameters:

  • app_id (String)

    The ID of the app to create the experience for

  • company_id (String)

    The ID of the company to create the experience for

  • name (String, nil)

    The name of the experience

  • section_id (String, nil)

    The ID of the section to create the experience in

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

Returns:

See Also:



25
26
27
28
29
30
31
32
33
34
# File 'lib/whop_sdk/resources/experiences.rb', line 25

def create(params)
  parsed, options = WhopSDK::ExperienceCreateParams.dump_request(params)
  @client.request(
    method: :post,
    path: "experiences",
    body: parsed,
    model: WhopSDK::Experience,
    options: options
  )
end

#delete(id, request_options: {}) ⇒ Boolean

Required permissions:

  • ‘experience:delete`

Parameters:

  • id (String)

    The internal ID of the experience to delete.

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

Returns:

  • (Boolean)

See Also:



146
147
148
149
150
151
152
153
# File 'lib/whop_sdk/resources/experiences.rb', line 146

def delete(id, params = {})
  @client.request(
    method: :delete,
    path: ["experiences/%1$s", id],
    model: WhopSDK::Internal::Type::Boolean,
    options: params[:request_options]
  )
end

#detach(id, product_id: , request_options: {}) ⇒ WhopSDK::Models::Experience

Removes an experience from an product, making it inaccessible to the product’s customers.

Required permissions:

  • ‘experience:detach`

Parameters:

  • id (String)

    The ID of the Experience to be added to an Access Pass.

  • product_id (String)

    The ID of the Access Pass to add the Experience to.

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

Returns:

See Also:



202
203
204
205
206
207
208
209
210
211
# File 'lib/whop_sdk/resources/experiences.rb', line 202

def detach(id, params)
  parsed, options = WhopSDK::ExperienceDetachParams.dump_request(params)
  @client.request(
    method: :post,
    path: ["experiences/%1$s/detach", id],
    body: parsed,
    model: WhopSDK::Experience,
    options: options
  )
end

#duplicate(id, name: nil, request_options: {}) ⇒ WhopSDK::Models::Experience

Duplicates an existing experience. The name will be copied, unless provided. The new experience will be attached to the same products as the original experience. If duplicating a Forum or Chat experience, the new experience will have the same settings as the original experience, e.g. who can post, who can comment, etc. No content, e.g. posts, messages, lessons from within the original experience will be copied.

Required permissions:

  • ‘experience:create`

Parameters:

  • id (String)

    The ID of the experience to duplicate

  • name (String, nil)

    The name of the new experience

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

Returns:

See Also:



235
236
237
238
239
240
241
242
243
244
# File 'lib/whop_sdk/resources/experiences.rb', line 235

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

#list(company_id: , after: nil, app_id: nil, before: nil, created_after: nil, created_before: nil, first: nil, last: nil, product_id: nil, request_options: {}) ⇒ WhopSDK::Internal::CursorPage<WhopSDK::Models::ExperienceListResponse>

Lists experiences for a company

Required permissions:

  • ‘experience:hidden_experience:read`

Parameters:

  • company_id (String)

    The ID of the company to filter experiences by

  • after (String, nil)

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

  • app_id (String, nil)

    The ID of the app to filter experiences by

  • before (String, nil)

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

  • created_after (Time, nil)

    The minimum creation date to filter by

  • created_before (Time, nil)

    The maximum creation date to filter by

  • first (Integer, nil)

    Returns the first n elements from the list.

  • last (Integer, nil)

    Returns the last n elements from the list.

  • product_id (String, nil)

    The ID of the product to filter experiences by

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

Returns:

See Also:



121
122
123
124
125
126
127
128
129
130
131
# File 'lib/whop_sdk/resources/experiences.rb', line 121

def list(params)
  parsed, options = WhopSDK::ExperienceListParams.dump_request(params)
  @client.request(
    method: :get,
    path: "experiences",
    query: parsed,
    page: WhopSDK::Internal::CursorPage,
    model: WhopSDK::Models::ExperienceListResponse,
    options: options
  )
end

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

Retrieves an experience by ID

Parameters:

Returns:

See Also:



47
48
49
50
51
52
53
54
# File 'lib/whop_sdk/resources/experiences.rb', line 47

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

#update(id, access_level: nil, logo: nil, name: nil, order: nil, section_id: nil, request_options: {}) ⇒ WhopSDK::Models::Experience

Required permissions:

  • ‘experience:update`

Parameters:

Returns:

See Also:



79
80
81
82
83
84
85
86
87
88
# File 'lib/whop_sdk/resources/experiences.rb', line 79

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