# `DripDrop.ShortLinks`
[🔗](https://github.com/agoodway/dripdrop/blob/v0.1.0/lib/dripdrop/short_links.ex#L1)

Context for persisted short-link records.

The rewriting pipeline stays focused on URL parsing and provider calls while
this context owns the DripDrop schema interactions for idempotent short-link
lookup and persistence.

# `get_by_idempotency_key`

```elixir
@spec get_by_idempotency_key(binary()) :: Ecto.Schema.t() | nil
```

Returns an existing short-link row for an idempotency key.

# `persist_result`

```elixir
@spec persist_result(map()) :: :ok | {:error, map()}
```

Persists a provider result for a shortened URL.

# `skipped_result?`

```elixir
@spec skipped_result?(DripDrop.ShortLinks.Result.t()) :: boolean()
```

Returns true when a provider result should not write a short-link row.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
