Sha256: ba45e75fc0b5097f1a463c4c39a99999f85241b587fcf6951b2b242e211f2aed
Contents?: true
Size: 1.6 KB
Versions: 2
Compression:
Stored size: 1.6 KB
Contents
require "embulk/input/marketo/base" module Embulk module Input module Marketo class Lead < Base PREVIEW_COUNT = 15 Plugin.register_input("marketo/lead", self) def self.target :lead end def self.guess(config) client = soap_client(config) metadata = client.metadata return {"columns" => generate_columns(metadata)} end def self.generate_columns(metadata) columns = [ {name: "id", type: "long"}, {name: "email", type: "string"}, ] metadata.each do |field| type = case field[:data_type] when "integer" "long" when "dateTime", "date" "timestamp" when "string", "text", "phone", "currency" "string" when "boolean" "boolean" when "float" "double" else "string" end columns << {name: field[:name], type: type} end columns end def run count = 0 @soap.each(@last_updated_at) do |lead| values = @columns.map do |column| name = column["name"].to_s (lead[name] || {})[:value] end page_builder.add(values) count += 1 break if preview? && count >= PREVIEW_COUNT end page_builder.finish commit_report = {} return commit_report end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
embulk-input-marketo-0.1.1 | lib/embulk/input/marketo/lead.rb |
embulk-input-marketo-0.1.0 | lib/embulk/input/marketo/lead.rb |