class PlatformSdk::DataPipeline::Client

DataPipeline::Client

def headers

def headers
  { "Content-Type" => "application/json" }
end

def initialize(credentials)

def initialize(credentials)
  @credentials = credentials
  raise ArgumentError, "pipeline_host is required" if @credentials[:pipeline_host].nil?
  raise ArgumentError, "pipeline_username is required" if @credentials[:pipeline_username].nil?
  raise ArgumentError, "pipeline_password is required" if @credentials[:pipeline_password].nil?
  @conn = Faraday.new(url: "https://#{@credentials[:pipeline_host]}") do |faraday|
    faraday.request(:retry, retry_options)
    faraday.request(:authorization, :basic, @credentials[:pipeline_username], @credentials[:pipeline_password])
    faraday.headers = headers
    faraday.adapter(:net_http)
  end
end

def post(message)

def post(message)
  @conn.post("messages", message.to_json)
end

def retry_options

def retry_options
  {
    max: 3,
    interval: 0.05,
    interval_randomness: 0.5,
    backoff_factor: 2
  }
end