lib/runger/loaders/doppler.rb in runger_config-4.0.0 vs lib/runger/loaders/doppler.rb in runger_config-5.0.0

- old
+ new

@@ -1,61 +1,57 @@ # frozen_string_literal: true -require "uri" -require "net/http" -require "json" +require 'json' +require 'net/http' +require 'uri' -module Runger - module Loaders - class Doppler < Base - class RequestError < StandardError; end +class Runger::Loaders::Doppler < Runger::Loaders::Base + class RequestError < StandardError; end - class << self - attr_accessor :download_url - attr_writer :token + class << self + attr_accessor :download_url + attr_writer :token - def token - @token || ENV["DOPPLER_TOKEN"] - end - end + def token + @token || ENV.fetch('DOPPLER_TOKEN', nil) + end + end - self.download_url = "https://api.doppler.com/v3/configs/config/secrets/download" + self.download_url = 'https://api.doppler.com/v3/configs/config/secrets/download' - def call(env_prefix:, **_options) - env_payload = parse_doppler_response(url: Doppler.download_url, token: Doppler.token) + def call(env_prefix:, **_options) + env_payload = parse_doppler_response(url: Runger::Loaders::Doppler.download_url, token: Runger::Loaders::Doppler.token) - env = ::Runger::Env.new(type_cast: ::Runger::NoCast, env_container: env_payload) + env = ::Runger::Env.new(type_cast: ::Runger::NoCast, env_container: env_payload) - env.fetch_with_trace(env_prefix).then do |(conf, trace)| - Tracing.current_trace&.merge!(trace) - conf - end - end + env.fetch_with_trace(env_prefix).then do |(conf, trace)| + ::Runger::Tracing.current_trace&.merge!(trace) + conf + end + end - private + private - def parse_doppler_response(url:, token:) - response = fetch_doppler_config(url, token) + def parse_doppler_response(url:, token:) + response = fetch_doppler_config(url, token) - unless response.is_a?(Net::HTTPSuccess) - raise RequestError, "#{response.code} #{response.message}" - end + unless response.is_a?(Net::HTTPSuccess) + raise(RequestError, "#{response.code} #{response.message}") + end - JSON.parse(response.read_body) - end + JSON.parse(response.read_body) + end - def fetch_doppler_config(url, token) - uri = URI.parse(url) - raise "Doppler token is required to load configuration from Doppler" if token.nil? + def fetch_doppler_config(url, token) + uri = URI.parse(url) + raise('Doppler token is required to load configuration from Doppler') if token.nil? - http = Net::HTTP.new(uri.host, uri.port) - http.use_ssl = true if uri.scheme == "https" + http = Net::HTTP.new(uri.host, uri.port) + http.use_ssl = true if uri.scheme == 'https' - request = Net::HTTP::Get.new(uri) - request["Accept"] = "application/json" - request["Authorization"] = "Bearer #{token}" + request = Net::HTTP::Get.new(uri) + request['Accept'] = 'application/json' + request['Authorization'] = "Bearer #{token}" - http.request(request) - end - end + http.request(request) end end