Class: GrowsurfRuby::Resources::Campaign::Design

Inherits:
Object
  • Object
show all
Defined in:
lib/growsurf_ruby/resources/campaign/design.rb,
sig/growsurf_ruby/resources/campaign/design.rbs

Instance Method Summary collapse

Constructor Details

#initialize(client:) ⇒ Design

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

Parameters:



58
59
60
# File 'lib/growsurf_ruby/resources/campaign/design.rb', line 58

def initialize(client:)
  @client = client
end

Instance Method Details

#retrieve(id, request_options: {}) ⇒ Hash{Symbol=>Object}

Retrieves a program's design configuration — the same surface as the dashboard Program Editor's Design tab: the GrowSurf window layout, header, share channels + invite, signup form, portal/landing pages, theme styling, and the referral/affiliate summary + status sections. This is a large object whose available fields depend on the program type; the response includes every field and its current value, which is the same shape you send back on PATCH.

Parameters:

Returns:

  • (Hash{Symbol=>Object})


21
22
23
24
25
26
27
28
# File 'lib/growsurf_ruby/resources/campaign/design.rb', line 21

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

#update(id, body, request_options: {}) ⇒ Hash{Symbol=>Object}

Updates a program's design configuration. Only the fields you send are changed; anything you leave out is untouched (arrays such as signup.fields replace wholesale). Unknown fields, fields not available for the program type, and invalid values return a 400. Landing-page custom code and JavaScript are not editable via the API.

Parameters:

  • id (String)

    GrowSurf program ID.

  • body (Hash{Symbol=>Object})

    Partial design configuration to merge.

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

Returns:

  • (Hash{Symbol=>Object})


45
46
47
48
49
50
51
52
53
# File 'lib/growsurf_ruby/resources/campaign/design.rb', line 45

def update(id, body, params = {})
  @client.request(
    method: :patch,
    path: ["campaign/%1$s/design", id],
    body: body,
    model: GrowsurfRuby::Internal::Type::HashOf[GrowsurfRuby::Internal::Type::Unknown],
    options: params[:request_options]
  )
end