lib/excalt/request/url_helper.ex

defmodule Excalt.Request.UrlHelper do
  @moduledoc """
  Helper functions to create the urls used for the caldav requests.
  """

  @doc """
  Builds the url for accessing the calendar of a user.
  """
  @spec build_url(server_url :: String.t(), username :: String.t()) :: String.t()
  def build_url(server_url, username) do
    "#{server_url}/calendars/#{URI.encode(username)}"
  end

  @doc """
  Builds the url for accessing the calendar of a user.

  ## Examples
      iex> Excalt.Request.UrlHelper.build_url("http://mycaldavserver.org", "myuser", "mycalendar")
      "http://mycaldavserver.org/myuser/mycalendar"
  """
  @spec build_url(server_url :: String.t(), username :: String.t(), calendar_name :: String.t()) ::
          String.t()
  def build_url(server_url, username, calendar_name) do
    "#{build_url(server_url, username)}/#{URI.encode(calendar_name)}"
  end
end