Sha256: dfe1a67b9bb3375e52943a7885c6cf34b65a98a327e4b2d7a8873cfa80bf076f
Contents?: true
Size: 932 Bytes
Versions: 1
Compression:
Stored size: 932 Bytes
Contents
# frozen_string_literal: true require 'net/http' require 'uri' require 'json' require 'chronicle/serialization' module Chronicle module ETL class RestLoader < Chronicle::ETL::Loader register_connector do |r| r.identifier = :rest r.description = 'a REST endpoint' end setting :hostname, required: true setting :endpoint, required: true setting :access_token def load(payload) uri = URI.parse("#{@config.hostname}#{@config.endpoint}") header = { 'Authorization' => "Bearer #{@config.access_token}", 'Content-Type': 'application/json' } use_ssl = uri.scheme == 'https' Net::HTTP.start(uri.host, uri.port, use_ssl: use_ssl) do |http| request = Net::HTTP::Post.new(uri.request_uri, header) request.body = payload.to_json http.request(request) end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
chronicle-etl-0.6.1 | lib/chronicle/etl/loaders/rest_loader.rb |