allow binary type (#32)

* allow binary type

* remove binary_id support
This commit is contained in:
Dennis Beatty 2024-07-18 08:14:01 -06:00 committed by GitHub
parent ee51c5fdcb
commit c74d433c2d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 10 additions and 10 deletions

View file

@ -31,7 +31,7 @@ TypeIDs as fields in your Ecto schemas.
defmodule MyApp.Accounts.User do
use Ecto.Schema
@primary_key {:id, TypeID, autogenerate: true, prefix: "acct", type: :binary_id}
@primary_key {:id, TypeID, autogenerate: true, prefix: "acct", type: :binary}
@foreign_key_type TypeID
# ...
@ -40,9 +40,9 @@ end
### Underlying types
`TypeID`s can be stored as either `:string` or `:binary_id`. `:string` will
store the entire TypeID including the prefix. `:binary_id` stores only the
UUID portion and requires a `:uuid` or `:binary` column.
`TypeID`s can be stored as either `:string` or `:binary`. `:string` will store
the entire TypeID including the prefix. `:binary` stores only the UUID portion
and requires a `:uuid` or `:binary` column.
#### Default type
@ -50,5 +50,5 @@ The type used can be set globally in the application config.
```elixir
config :typeid_elixir,
default_type: :binary_id
default_type: :binary
```

View file

@ -48,7 +48,7 @@ if Code.ensure_loaded?(Ecto.ParameterizedType) do
case {tid.prefix, type} do
{^prefix, :string} -> {:ok, TypeID.to_string(tid)}
{^prefix, :binary_id} -> {:ok, TypeID.uuid(tid)}
{^prefix, :binary} -> {:ok, TypeID.uuid_bytes(tid)}
_ -> :error
end
end
@ -66,12 +66,12 @@ if Code.ensure_loaded?(Ecto.ParameterizedType) do
end
end
def load(<<_::128>> = uuid, _, %{type: :binary_id} = params) do
def load(<<_::128>> = uuid, _, %{type: :binary} = params) do
prefix = find_prefix(params)
TypeID.from_uuid_bytes(prefix, uuid)
end
def load(<<_::288>> = uuid, _, %{type: :binary_id} = params) do
def load(<<_::288>> = uuid, _, %{type: :binary} = params) do
prefix = find_prefix(params)
TypeID.from_uuid(prefix, uuid)
rescue
@ -95,8 +95,8 @@ if Code.ensure_loaded?(Ecto.ParameterizedType) do
end
end
unless type in ~w[string binary_id]a do
raise ArgumentError, "`type` must be `:string` or `:binary_id`"
unless type in ~w[string binary]a do
raise ArgumentError, "`type` must be `:string` or `:binary`"
end
if primary_key do