View Source Electric.Plug.Utils (electric v0.7.4)

Utility functions for Electric endpoints, e.g. for parsing and validating path and query parameters.

Summary

Functions

Parse columns parameter from a string consisting of a comma separated list of potentially quoted column names into a sorted list of strings.

Functions

Link to this function

parse_columns_param(columns)

View Source
@spec parse_columns_param(binary()) :: {:ok, [String.t(), ...]} | {:error, term()}

Parse columns parameter from a string consisting of a comma separated list of potentially quoted column names into a sorted list of strings.

Examples

iex> Electric.Plug.Utils.parse_columns_param("")
{:error, "Invalid zero-length delimited identifier"}
iex> Electric.Plug.Utils.parse_columns_param("foo,")
{:error, "Invalid zero-length delimited identifier"}
iex> Electric.Plug.Utils.parse_columns_param("id")
{:ok, ["id"]}
iex> Electric.Plug.Utils.parse_columns_param("id,name")
{:ok, ["id", "name"]}
iex> Electric.Plug.Utils.parse_columns_param(~S|"PoT@To",PoTaTo|)
{:ok, ["PoT@To", "potato"]}
iex> Electric.Plug.Utils.parse_columns_param(~S|"PoTaTo,sunday",foo|)
{:ok, ["PoTaTo,sunday", "foo"]}
iex> Electric.Plug.Utils.parse_columns_param(~S|"fo""o",bar|)
{:ok, [~S|fo"o|, "bar"]}
iex> Electric.Plug.Utils.parse_columns_param(~S|"id,"name"|)
{:error, ~S|Invalid unquoted identifier contains special characters: "id|}