Skip to main content

lib/kameleoon/data/cookie.ex

defmodule Kameleoon.Data.Cookie do
  @moduledoc false

  alias Kameleoon.Data.Validation

  @enforce_keys [:cookies]
  defstruct [:cookies]

  @type cookie_map :: %{optional(String.t()) => String.t()}

  @type t :: %__MODULE__{
          cookies: cookie_map()
        }

  @spec new!(cookie_map()) :: t()
  def new!(cookies) do
    %__MODULE__{cookies: Validation.cookie_map!(cookies, :cookies)}
  end
end