Shortcode

GitHub Workflow StatusGitHub issuesLicenseHex.pmHex.pm

An Ecto type for UUIDs and ID displayed as shortcode with support of prefix 'à la Stripe'.

Installation

Shortcode is published on Hex. The package can be installed by adding shortcode to your list of dependencies in mix.exs:

def deps do
  [
    {:shortcode, "~> 0.2"}
  ]
end

The docs can be found at https://hexdocs.pm/shortcode.

Usage

You can use Shortcode UUID or Shortcode id for regular or primary key fields.

defmodule RequestUUID do
  use Ecto.Schema

  schema "request" do
    field :uuid, Shortcode.Ecto.UUID
    field :autogenerated_uuid, Shortcode.Ecto.UUID, autogenerate: true
  end
end

defmodule RequestID do
  use Ecto.Schema

  schema "request" do
    field :request_id, Shortcode.Ecto.ID
    field :autogenerated_request_id, Shortcode.Ecto.UUID, autogenerate: true
  end
end
defmodule MyApp.UserWithUUID do
  use Ecto.Schema

  @primary_key {:id, Shortcode.Ecto.UUID, prefix: "usr", autogenerate: true}
  schema "users" do
  end
end

defmodule MyApp.UserWithID do
  use Ecto.Schema

  @primary_key {:id, Shortcode.Ecto.ID, prefix: "usr", autogenerate: true}
  schema "users" do
  end
end