lib/s3_config.ex

defmodule AwsClientUploaderEx.S3Config do
  @moduledoc """
    module that handles the config settings for the aws s3 signing functions
  """

  def aws_config do
    %{
      scheme: scheme(),
      host: host(),
      region: region(),
      access_key_id: aws_access_key_id(),
      secret_access_key: aws_secret_key()
    }
  end

  def bucket_url, do: "https://#{host()}/#{bucket()}/#{bucket_divider}"

  def region do
    {:ok, aws_region} = Confex.fetch_env(:aws_client_uploader_ex, :aws_region)
    aws_region
  end

  def scheme do
    {:ok, aws_scheme} = Confex.fetch_env(:aws_client_uploader_ex, :aws_scheme)
    aws_scheme
  end

  def host do
    {:ok, aws_host} = Confex.fetch_env(:aws_client_uploader_ex, :aws_host)
    aws_host
  end

  def bucket do
    {:ok, aws_bucket} = Confex.fetch_env(:aws_client_uploader_ex, :aws_bucket)
    aws_bucket
  end

  def bucket_divider do
    {:ok, aws_bucket_divider} = Confex.fetch_env(:aws_client_uploader_ex, :aws_bucket_divider)
    aws_bucket_divider
  end


  def aws_access_key_id do
    {:ok, access_key} = Confex.fetch_env(:aws_client_uploader_ex, :aws_access_key_id)
    access_key
  end

  def aws_secret_key do
    {:ok, access_secret} = Confex.fetch_env(:aws_client_uploader_ex, :aws_secret_access_key)
    access_secret
  end
end