LiveFilter.UrlUtils (LiveFilter v0.1.0)

View Source

Utilities for handling URL parameter encoding and decoding.

Provides functions to flatten nested parameter structures for proper URL encoding and other URL-related utilities for LiveFilter.

Summary

Functions

Flattens nested parameter maps into a flat structure suitable for URL encoding.

Flattens nested parameters into a list of key-value tuples.

Functions

flatten_and_encode_params(params)

Flattens nested parameter maps into a flat structure suitable for URL encoding.

Converts nested maps like %{"filters" => %{"status" => %{"operator" => "in"}}} into flat parameters like [{"filters[status][operator]", "in"}].

Examples

iex> params = %{"filters" => %{"status" => %{"operator" => "in", "values" => ["pending"]}}}
iex> LiveFilter.UrlUtils.flatten_and_encode_params(params)
"filters%5Bstatus%5D%5Boperator%5D=in&filters%5Bstatus%5D%5Bvalues%5D%5B0%5D=pending"

flatten_params(map, prefix \\ "")

Flattens nested parameters into a list of key-value tuples.

Examples

iex> params = %{"user" => %{"name" => "John", "tags" => ["admin", "user"]}}
iex> LiveFilter.UrlUtils.flatten_params(params)
[{"user[name]", "John"}, {"user[tags][0]", "admin"}, {"user[tags][1]", "user"}]