class Multiwoven::Integrations::Destination::Postgresql::Client

def write(sync_config, records, action = "insert")

def write(sync_config, records, action = "insert")
  connection_config = sync_config.destination.connection_specification.with_indifferent_access
  table_name = sync_config.stream.name
  db = create_connection(connection_config)
  write_success = 0
  write_failure = 0
  records.each do |record|
    query = Multiwoven::Integrations::Core::QueryBuilder.perform(action, table_name, record)
    begin
      db.exec(query)
      write_success += 1
    rescue StandardError => e
      handle_exception("POSTGRESQL:RECORD:WRITE:EXCEPTION", "error", e)
      write_failure += 1
    end
  end
  tracking_message(write_success, write_failure)
rescue StandardError => e
  handle_exception(
    "POSTGRESQL:WRITE:EXCEPTION",
    "error",
    e
  )
end