Sha256: 189a5cc186d3eed17719c7df6591db791d8439e1a7d019244155701a0c35814e
Contents?: true
Size: 1.7 KB
Versions: 2
Compression:
Stored size: 1.7 KB
Contents
module ExactTargetRest class DataExtension # 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) 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 # 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 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 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 end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
exact_target_rest-0.1.1 | lib/exact_target_rest/data_extension.rb |
exact_target_rest-0.1.0 | lib/exact_target_rest/data_extension.rb |