defmodule ExGemini do @moduledoc """ Handles REST methods """ def post(url, body \\ %{}) do init() |> headers() |> Req.post( url: auth(url), json: body, connect_options: [timeout: 240_000], receive_timeout: 240_000 ) end defp init do base_url = Application.get_env(:ex_gemini, :base_url) Req.new(base_url: base_url) end defp headers(req) do req |> Req.Request.put_headers([ {"Content-Type", "application/json"} ]) end defp auth(url) do key = Application.get_env(:ex_gemini, :api_key) url <> "?key=#{key}" end end