Sha256: b080c5753707a207de9c4fe9260d8bb4c356ff0c71b7b06d5c312548adeb079d

Contents?: true

Size: 886 Bytes

Versions: 6

Compression:

Stored size: 886 Bytes

Contents

require_relative 'resource'

module Eucalyptus
  class CustomAudience < Resource
    def self.api_path
      "customaudiences"
    end

    def self.create(graph: Eucalyptus.graph, name:)
      response = graph.put_connections(parent.id, 'customaudiences', name: name)
      self.new(response)
    end

    def populate(emails, graph: Eucalyptus.graph)
      emails = emails.collect{|email| Digest::SHA256.hexdigest(email)}
      payload = {schema: "EMAIL_SHA256", data: emails}.to_json
      graph.put_connections(self.id, 'users', payload: payload)
    end

    def ad_sets(from_collection: AdSet.all)
      from_collection.collect do |ad_set|
        if ad_set.targeting.custom_audiences
          ad_set if ad_set.targeting.custom_audiences.any?{|a| a["id"] == self.id }
        end
      end.compact
    end

    def self.known_fields
      [:name, :description]
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
eucalyptus-1.0.0 lib/eucalyptus/custom_audience.rb
eucalyptus-0.3.3 lib/eucalyptus/custom_audience.rb
eucalyptus-0.3.2 lib/eucalyptus/custom_audience.rb
eucalyptus-0.3.1 lib/eucalyptus/custom_audience.rb
eucalyptus-0.3.0 lib/eucalyptus/custom_audience.rb
eucalyptus-0.2.13 lib/eucalyptus/custom_audience.rb