Class: GrowsurfRuby::Resources::Campaign

Inherits:
Object
  • Object
show all
Defined in:
lib/growsurf_ruby/resources/campaign.rb,
lib/growsurf_ruby/resources/campaign/design.rb,
lib/growsurf_ruby/resources/campaign/emails.rb,
lib/growsurf_ruby/resources/campaign/reward.rb,
lib/growsurf_ruby/resources/campaign/options.rb,
lib/growsurf_ruby/resources/campaign/rewards.rb,
lib/growsurf_ruby/resources/campaign/commission.rb,
lib/growsurf_ruby/resources/campaign/participant.rb,
lib/growsurf_ruby/resources/campaign/installation.rb,
sig/growsurf_ruby/resources/campaign.rbs,
sig/growsurf_ruby/resources/campaign/design.rbs,
sig/growsurf_ruby/resources/campaign/emails.rbs,
sig/growsurf_ruby/resources/campaign/reward.rbs,
sig/growsurf_ruby/resources/campaign/options.rbs,
sig/growsurf_ruby/resources/campaign/rewards.rbs,
sig/growsurf_ruby/resources/campaign/commission.rbs,
sig/growsurf_ruby/resources/campaign/participant.rbs,
sig/growsurf_ruby/resources/campaign/installation.rbs

Defined Under Namespace

Classes: Commission, Design, Emails, Installation, Options, Participant, Reward, Rewards

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(client:) ⇒ Campaign

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

Parameters:



412
413
414
415
416
417
418
419
420
421
422
# File 'lib/growsurf_ruby/resources/campaign.rb', line 412

def initialize(client:)
  @client = client
  @participant = GrowsurfRuby::Resources::Campaign::Participant.new(client: client)
  @reward = GrowsurfRuby::Resources::Campaign::Reward.new(client: client)
  @commission = GrowsurfRuby::Resources::Campaign::Commission.new(client: client)
  @rewards = GrowsurfRuby::Resources::Campaign::Rewards.new(client: client)
  @design = GrowsurfRuby::Resources::Campaign::Design.new(client: client)
  @emails = GrowsurfRuby::Resources::Campaign::Emails.new(client: client)
  @options = GrowsurfRuby::Resources::Campaign::Options.new(client: client)
  @installation = GrowsurfRuby::Resources::Campaign::Installation.new(client: client)
end

Instance Attribute Details

#commissionGrowsurfRuby::Resources::Campaign::Commission (readonly)

Affiliate transaction, commission, and payout operations.



15
16
17
# File 'lib/growsurf_ruby/resources/campaign.rb', line 15

def commission
  @commission
end

#designGrowsurfRuby::Resources::Campaign::Design (readonly)

Program Editor "Design" tab configuration operations.



23
24
25
# File 'lib/growsurf_ruby/resources/campaign.rb', line 23

def design
  @design
end

#emailsGrowsurfRuby::Resources::Campaign::Emails (readonly)

Program Editor "Emails" tab configuration operations.



27
28
29
# File 'lib/growsurf_ruby/resources/campaign.rb', line 27

def emails
  @emails
end

#installationGrowsurfRuby::Resources::Campaign::Installation (readonly)

Program Editor "Installation" tab configuration operations.



35
36
37
# File 'lib/growsurf_ruby/resources/campaign.rb', line 35

def installation
  @installation
end

#optionsGrowsurfRuby::Resources::Campaign::Options (readonly)

Program Editor "Options" tab configuration operations.



31
32
33
# File 'lib/growsurf_ruby/resources/campaign.rb', line 31

def options
  @options
end

#participantGrowsurfRuby::Resources::Campaign::Participant (readonly)



7
8
9
# File 'lib/growsurf_ruby/resources/campaign.rb', line 7

def participant
  @participant
end

#rewardGrowsurfRuby::Resources::Campaign::Reward (readonly)

Participant reward retrieval and manual reward operations.



11
12
13
# File 'lib/growsurf_ruby/resources/campaign.rb', line 11

def reward
  @reward
end

#rewardsGrowsurfRuby::Resources::Campaign::Rewards (readonly)

Campaign reward configuration operations.



19
20
21
# File 'lib/growsurf_ruby/resources/campaign.rb', line 19

def rewards
  @rewards
end

Instance Method Details

#clone(id, request_options: {}) ⇒ GrowsurfRuby::Models::CampaignAPI

Clones an existing program, returning the newly created program.

Parameters:

Returns:



153
154
155
156
157
158
159
160
# File 'lib/growsurf_ruby/resources/campaign.rb', line 153

def clone(id, params = {})
  @client.request(
    method: :post,
    path: ["campaign/%1$s/clone", id],
    model: GrowsurfRuby::CampaignAPI,
    options: params[:request_options]
  )
end

#create(type:, company_logo_image_url: nil, company_name: nil, currency_iso: nil, name: nil, rewards: nil, request_options: {}) ⇒ GrowsurfRuby::Models::CampaignAPI

Creates a program. Only type is required; everything else is server-defaulted. Editor-tab configuration (design, emails, options, installation) is not accepted here — configure it via the config sub-resources (e.g. campaign.options.update) after the program is created.

Parameters:

Returns:

See Also:



99
100
101
102
103
104
105
106
107
108
# File 'lib/growsurf_ruby/resources/campaign.rb', line 99

def create(params)
  parsed, options = GrowsurfRuby::CampaignCreateParams.dump_request(params)
  @client.request(
    method: :post,
    path: "campaigns",
    body: parsed,
    model: GrowsurfRuby::CampaignAPI,
    options: options
  )
end

#create_mobile_participant_token(id, email:, fingerprint: nil, first_name: nil, ip_address: nil, last_name: nil, metadata: nil, mobile_instance_id: nil, referral_status: nil, referred_by: nil, request_options: {}) ⇒ GrowsurfRuby::Models::CampaignCreateMobileParticipantTokenResponse

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

Creates or returns a participant using the same input behavior as Add Participant, then returns a participant-scoped token for GrowSurf mobile SDK participant endpoints. Use this endpoint from your backend after your mobile app authenticates a signed-in user. The program must have mobile SDK access enabled.

Parameters:

  • id (String)

    GrowSurf program ID.

  • email (String)
  • fingerprint (String)
  • first_name (String)
  • ip_address (String)
  • last_name (String)
  • metadata (Hash{Symbol=>Object})

    Shallow custom metadata object.

  • mobile_instance_id (String)

    Optional app-install scoped identifier for native mobile anti-fraud. Recommended

  • referral_status (Symbol, GrowsurfRuby::Models::Campaign::Create::ReferralStatus)
  • referred_by (String)

    Referrer participant ID or email address.

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

Returns:

See Also:



198
199
200
201
202
203
204
205
206
207
# File 'lib/growsurf_ruby/resources/campaign.rb', line 198

def create_mobile_participant_token(id, params)
  parsed, options = GrowsurfRuby::CampaignCreateMobileParticipantTokenParams.dump_request(params)
  @client.request(
    method: :post,
    path: ["campaign/%1$s/mobile-participant-token", id],
    body: parsed,
    model: GrowsurfRuby::Models::CampaignCreateMobileParticipantTokenResponse,
    options: options
  )
end

#list(request_options: {}) ⇒ GrowsurfRuby::Models::CampaignListResponse

Retrieves a list of your programs. Deleted programs are not returned.

Parameters:

Returns:

See Also:



66
67
68
69
70
71
72
73
# File 'lib/growsurf_ruby/resources/campaign.rb', line 66

def list(params = {})
  @client.request(
    method: :get,
    path: "campaigns",
    model: GrowsurfRuby::Models::CampaignListResponse,
    options: params[:request_options]
  )
end

#list_commissions(id, limit: nil, next_id: nil, status: nil, request_options: {}) ⇒ GrowsurfRuby::Models::ParticipantCommissionList

Retrieves a paged list of all participant commissions in an affiliate program.

Parameters:

Returns:

See Also:



226
227
228
229
230
231
232
233
234
235
236
# File 'lib/growsurf_ruby/resources/campaign.rb', line 226

def list_commissions(id, params = {})
  parsed, options = GrowsurfRuby::CampaignListCommissionsParams.dump_request(params)
  query = GrowsurfRuby::Internal::Util.encode_query_params(parsed)
  @client.request(
    method: :get,
    path: ["campaign/%1$s/commissions", id],
    query: query.transform_keys(next_id: "nextId"),
    model: GrowsurfRuby::ParticipantCommissionList,
    options: options
  )
end

#list_leaderboard(id, is_monthly: nil, leaderboard_type: nil, limit: nil, next_id: nil, request_options: {}) ⇒ GrowsurfRuby::Models::ParticipantList

Retrieves participants in leaderboard order for the specified leaderboard type.

Parameters:

Returns:

See Also:



257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
# File 'lib/growsurf_ruby/resources/campaign.rb', line 257

def list_leaderboard(id, params = {})
  parsed, options = GrowsurfRuby::CampaignListLeaderboardParams.dump_request(params)
  query = GrowsurfRuby::Internal::Util.encode_query_params(parsed)
  @client.request(
    method: :get,
    path: ["campaign/%1$s/leaderboard", id],
    query: query.transform_keys(
      is_monthly: "isMonthly",
      leaderboard_type: "leaderboardType",
      next_id: "nextId"
    ),
    model: GrowsurfRuby::ParticipantList,
    options: options
  )
end

#list_participants(id, limit: nil, next_id: nil, request_options: {}) ⇒ GrowsurfRuby::Models::ParticipantList

Retrieves a paged list of participants in a program.

Parameters:

  • id (String)

    GrowSurf program ID.

  • limit (Integer)

    Number of results to return. Maximum 100.

  • next_id (String)

    ID to start the next paged result set with.

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

Returns:

See Also:



288
289
290
291
292
293
294
295
296
297
298
# File 'lib/growsurf_ruby/resources/campaign.rb', line 288

def list_participants(id, params = {})
  parsed, options = GrowsurfRuby::CampaignListParticipantsParams.dump_request(params)
  query = GrowsurfRuby::Internal::Util.encode_query_params(parsed)
  @client.request(
    method: :get,
    path: ["campaign/%1$s/participants", id],
    query: query.transform_keys(next_id: "nextId"),
    model: GrowsurfRuby::ParticipantList,
    options: options
  )
end

#list_payouts(id, limit: nil, next_id: nil, status: nil, request_options: {}) ⇒ GrowsurfRuby::Models::ParticipantPayoutList

Retrieves a paged list of all participant payouts in an affiliate program.

Parameters:

Returns:

See Also:



317
318
319
320
321
322
323
324
325
326
327
# File 'lib/growsurf_ruby/resources/campaign.rb', line 317

def list_payouts(id, params = {})
  parsed, options = GrowsurfRuby::CampaignListPayoutsParams.dump_request(params)
  query = GrowsurfRuby::Internal::Util.encode_query_params(parsed)
  @client.request(
    method: :get,
    path: ["campaign/%1$s/payouts", id],
    query: query.transform_keys(next_id: "nextId"),
    model: GrowsurfRuby::ParticipantPayoutList,
    options: options
  )
end

#list_referrals(id, desc: nil, email: nil, first_name: nil, last_name: nil, limit: nil, next_id: nil, offset: nil, referral_status: nil, sort_by: nil, request_options: {}) ⇒ GrowsurfRuby::Models::ReferralList

Retrieves a list of all referrals and email invites made by participants in a program.

Parameters:

  • id (String)

    GrowSurf program ID.

  • desc (Boolean)

    Return results in descending order when true.

  • email (String)

    URL-encoded email value to filter referral results.

  • first_name (String)

    First name value to filter results.

  • last_name (String)

    Last name value to filter results.

  • limit (Integer)

    Number of results to return. Maximum 100.

  • next_id (String)

    ID to start the next paged result set with.

  • offset (Integer)

    Offset number used to skip through a result set.

  • referral_status (Symbol, GrowsurfRuby::Models::Campaign::ReferralStatus)
  • sort_by (Symbol, GrowsurfRuby::Models::CampaignListReferralsParams::SortBy)

    Field used to sort referral results.

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

Returns:

See Also:



359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
# File 'lib/growsurf_ruby/resources/campaign.rb', line 359

def list_referrals(id, params = {})
  parsed, options = GrowsurfRuby::CampaignListReferralsParams.dump_request(params)
  query = GrowsurfRuby::Internal::Util.encode_query_params(parsed)
  @client.request(
    method: :get,
    path: ["campaign/%1$s/referrals", id],
    query: query.transform_keys(
      first_name: "firstName",
      last_name: "lastName",
      next_id: "nextId",
      referral_status: "referralStatus",
      sort_by: "sortBy"
    ),
    model: GrowsurfRuby::ReferralList,
    options: options
  )
end

#retrieve(id, request_options: {}) ⇒ GrowsurfRuby::Models::CampaignAPI

Retrieves a program for the given program ID.

Parameters:

Returns:

See Also:



48
49
50
51
52
53
54
55
# File 'lib/growsurf_ruby/resources/campaign.rb', line 48

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

#retrieve_analytics(id, days: nil, end_date: nil, start_date: nil, request_options: {}) ⇒ GrowsurfRuby::Models::CampaignRetrieveAnalyticsResponse

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

Retrieves analytics for a program.

Parameters:

  • id (String)

    GrowSurf program ID.

  • days (Integer)

    Last number of days to retrieve analytics for. Defaults to 365. Maximum 1825.

  • end_date (Integer)

    End date of the analytics timeframe as a Unix timestamp in milliseconds. Require

  • start_date (Integer)

    Start date of the analytics timeframe as a Unix timestamp in milliseconds. Requi

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

Returns:

See Also:



397
398
399
400
401
402
403
404
405
406
407
# File 'lib/growsurf_ruby/resources/campaign.rb', line 397

def retrieve_analytics(id, params = {})
  parsed, options = GrowsurfRuby::CampaignRetrieveAnalyticsParams.dump_request(params)
  query = GrowsurfRuby::Internal::Util.encode_query_params(parsed)
  @client.request(
    method: :get,
    path: ["campaign/%1$s/analytics", id],
    query: query.transform_keys(end_date: "endDate", start_date: "startDate"),
    model: GrowsurfRuby::Models::CampaignRetrieveAnalyticsResponse,
    options: options
  )
end

#update(id, company_logo_image_url: nil, company_name: nil, name: nil, status: nil, request_options: {}) ⇒ GrowsurfRuby::Models::CampaignAPI

Updates a program's identity and lifecycle. Only the fields you send are changed. type, urlId, and currencyISO are immutable. Editor-tab configuration (design, emails, options, installation) is edited via the dedicated config sub-resources (campaign.design, campaign.emails, campaign.options, campaign.installation), not here.

Parameters:

  • id (String)

    Path param: GrowSurf program ID.

  • company_logo_image_url (String)

    Body param

  • company_name (String)

    Body param

  • name (String)

    Body param

  • status (Symbol, GrowsurfRuby::Models::CampaignUpdateParams::Status)

    Body param: The program status. Transitions are validated; DELETED is not allowe

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

Returns:

See Also:



133
134
135
136
137
138
139
140
141
142
# File 'lib/growsurf_ruby/resources/campaign.rb', line 133

def update(id, params)
  parsed, options = GrowsurfRuby::CampaignUpdateParams.dump_request(params)
  @client.request(
    method: :patch,
    path: ["campaign/%1$s", id],
    body: parsed,
    model: GrowsurfRuby::CampaignAPI,
    options: options
  )
end