defmodule Bungee.Request.Builder.AddRequestOptions do def add_request_options(request, []) do request end def add_request_options(request, [head | tail]) do request |> add_request_option(head) |> add_request_options(tail) end def add_request_option(request, {:refresh, true}) do request |> Keyword.update!(:url, fn url -> url <> "?refresh=true" end) end def add_request_option(request, {:refresh, false}) do request |> Keyword.update!(:url, fn url -> url <> "?refresh=false" end) end def add_request_option(request, {:refresh, :wait_for}) do request |> Keyword.update!(:url, fn url -> url <> "?refresh=wait_for" end) end def add_request_option(request, {:search, true}) do request |> Keyword.update!(:url, fn url -> url <> "/_search" end) end end