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:



62
63
64
# File 'lib/growsurf_ruby/resources/campaign/design.rb', line 62

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 (window layout, header, share channels, signup form, portal/landing pages, theme styling, and summary/status sections).

This is a large, deeply nested 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 update.

Parameters:

Returns:

  • (Hash{Symbol=>Object})


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

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.

The request body is a partial CampaignDesign object. To see the full object with every field and its current value, GET this resource, then PATCH back only the fields you want to change.

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})


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

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