Current section

47 Versions

Jump to

Compare versions

7 files changed
+19 additions
-8 deletions
  @@ -35,4 +35,4 @@
35 35 {<<"optional">>,false},
36 36 {<<"repository">>,<<"hexpm">>},
37 37 {<<"requirement">>,<<"~> 2.9.3">>}]]}.
38 - {<<"version">>,<<"0.20.0">>}.
38 + {<<"version">>,<<"0.21.0">>}.
  @@ -76,6 +76,6 @@ defmodule Avrora.Codec do
76 76 <<72, 48, 48, 48, 48, 48, 48, 48, 48, 45, 48, 48, 48, 48, 45, 48, 48, 48, 48, 45, 48, 48, 48,
77 77 48, 45, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 123, 20, 174, 71, 225, 250, 47, 64>>
78 78 """
79 - @callback encode(payload :: map(), options :: keyword(Avrora.Schema.t())) ::
79 + @callback encode(payload :: binary() | map(), options :: keyword(Avrora.Schema.t())) ::
80 80 {:ok, result :: binary()} | {:error, reason :: term()}
81 81 end
  @@ -49,7 +49,7 @@ defmodule Avrora.Codec.ObjectContainerFile do
49 49 end
50 50
51 51 @impl true
52 - def encode(payload, schema: schema) when is_map(payload) do
52 + def encode(payload, schema: schema) when is_binary(payload) or is_map(payload) do
53 53 with {:ok, schema} <- resolve(schema),
54 54 {:ok, body} <- Codec.Plain.encode(payload, schema: schema),
55 55 {:ok, schema} <- SchemaEncoder.to_erlavro(schema) do
  @@ -26,7 +26,7 @@ defmodule Avrora.Codec.Plain do
26 26 end
27 27
28 28 @impl true
29 - def encode(payload, schema: schema) when is_map(payload) do
29 + def encode(payload, schema: schema) when is_binary(payload) or is_map(payload) do
30 30 with {:ok, schema} <- resolve(schema), do: do_encode(payload, schema)
31 31 end
32 32
  @@ -57,6 +57,7 @@ defmodule Avrora.Codec.Plain do
57 57 encoded =
58 58 schema.lookup_table
59 59 |> :avro_binary_encoder.encode(schema.full_name, payload)
60 + |> List.wrap()
60 61 |> :erlang.list_to_binary()
61 62
62 63 {:ok, encoded}
  @@ -70,7 +70,7 @@ defmodule Avrora.Codec.SchemaRegistry do
70 70 end
71 71
72 72 @impl true
73 - def encode(payload, schema: schema) when is_map(payload) do
73 + def encode(payload, schema: schema) when is_binary(payload) or is_map(payload) do
74 74 with {:ok, schema} <- resolve(schema) do
75 75 schema = if is_nil(schema.id), do: {:error, :invalid_schema_id}, else: {:ok, schema}
Loading more files…