# `ExDav.Storage.Postgres`
[🔗](https://git.sr.ht/~sbr/ExDav)

Postgres-backed implementation of `ExDav.Storage`. Owns its own users,
calendars, calendar objects, and tombstones tables; the Repo module is
configured via `config :ex_dav, repo: MyApp.Repo`.

Returns plain maps to keep the CalDAV plug agnostic of Ecto schemas.
Each calendar is shaped as `%{name, displayname, description,
components, ctag, objects}` and each object as `%{name, ical, etag,
uid, component}`.

# `authenticate`

Verify a username/password pair against the users table. Postgres-only.

# `count_objects`

Postgres-only admin helper.

# `delete_user`

Postgres-only admin helper.

# `get_user`

Postgres-only admin helper.

# `list_objects`

Postgres-only helper. The plug uses `get_calendar_with_objects/2` instead.

# `list_users`

Postgres-only admin helper.

# `upsert_user`

Postgres-only admin helper.

---

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