class ExactTargetRest::DataExtension
Public Class Methods
new(authorization, external_key, key_field: nil, key_fields: [key_field], snake_to_camel: true)
click to toggle source
Execute operations over DataExtension
@param authorization [Authorization] @param external_key [String] The string that identifies the DataExtension
@param key_field [String] field used as primary key (if just one) @param key_fields [Array<String>] fields used as composed primary key (if more than one) @param snake_to_camel [Boolean] Attributes should be converted to CamelCase? (default true)
# 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
Public Instance Methods
upsert(data_extension_rows)
click to toggle source
Upsert DataExtension
rows (batch).
Update or insert row based on primary keys
@param data_extension_rows [Array<Hash<Symbol, Object>>, Hash
<Symbol, Object>>]
<code>{keys: {}, values: {}}</code>,"keys" are DataExtension primary keys and "values" are column values
# 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
Protected Instance Methods
endpoint()
click to toggle source
# File lib/exact_target_rest/data_extension.rb, line 37 def endpoint @endpoint ||= Faraday.new(url: DATA_EXTENSION_URL) do |f| f.request :json f.response :json, content_type: /\bjson$/ f.adapter FARADAY_ADAPTER end end