Class: ExactTargetRest::DataExtension

Inherits:
Object
  • Object
show all
Defined in:
lib/exact_target_rest/data_extension.rb

Instance Method Summary collapse

Constructor Details

#initialize(authorization, external_key, key_field: nil, key_fields: [key_field], snake_to_camel: true) ⇒ DataExtension

Execute operations over DataExtension

Parameters:

  • authorization (Authorization)
  • external_key (String)

    The string that identifies the DataExtension

  • key_field (String) (defaults to: nil)

    field used as primary key (if just one)

  • key_fields (Array<String>) (defaults to: [key_field])

    fields used as composed primary key (if more than one)

  • snake_to_camel (Boolean) (defaults to: true)

    Attributes should be converted to CamelCase? (default true)



10
11
12
13
14
# File 'lib/exact_target_rest/data_extension.rb', line 10

def initialize(authorization, external_key, key_field: nil, key_fields: [key_field], snake_to_camel: true)
  @authorization = authorization
  @external_key = external_key
  @param_formatter = DataExtParams.new(*key_fields.compact, snake_to_camel: snake_to_camel)
end

Instance Method Details

#upsert(data_extension_rows) ⇒ Object

Upsert DataExtension rows (batch).

Update or insert row based on primary keys

Parameters:

  • data_extension_rows (Array<Hash<Symbol, Object>>, Hash<Symbol, Object>)

    ] {keys: {}, values: {}},“keys” are DataExtension primary keys and “values” are column values



23
24
25
26
27
28
29
30
31
32
33
# File 'lib/exact_target_rest/data_extension.rb', line 23

def upsert(data_extension_rows)
  @authorization.with_authorization do |access_token|
    resp = endpoint.post do |p|
      p.url(format(DATA_EXTENSION_PATH, URI.encode(@external_key)))
      p.headers['Authorization'] = "Bearer #{access_token}"
      p.body = @param_formatter.transform(data_extension_rows)
    end
    raise NotAuthorizedError if resp.status == 401
    resp
  end
end