@@ -27,19 +27,17 @@ defmodule OpenApiTypesense.Connection do
2727 ## Examples
2828
2929 iex> alias OpenApiTypesense.Connection
30-
31- iex> conn = Connection.new()
30+ ...> Connection.new()
3231 %OpenApiTypesense.Connection{
3332 host: "localhost",
3433 port: 8108,
3534 scheme: "http",
36- ...
35+ api_key: "xyz"
3736 }
3837
39- iex> Connection.new(%{})
40- ** (ArgumentError) Missing required fields: [:port, :scheme, :host, :api_key]
41- (open_api_typesense 0.2.0) lib/open_api_typesense/connection.ex:56: OpenApiTypesense.Connection.new/1
42- iex:2: (file)
38+ iex> alias OpenApiTypesense.Connection
39+ ...> Connection.new(%{})
40+ ** (ArgumentError) Missing required fields: [:api_key, :host, :port, :scheme]
4341
4442 """
4543 @ doc since: "0.2.0"
@@ -48,7 +46,7 @@ defmodule OpenApiTypesense.Connection do
4846 def new ( connection \\ defaults ( ) )
4947
5048 def new ( connection ) when is_map ( connection ) do
51- missing_fields = required_fields ( ) -- Map . keys ( connection )
49+ missing_fields = Enum . sort ( required_fields ( ) -- Map . keys ( connection ) )
5250
5351 if missing_fields == [ ] do
5452 struct ( __MODULE__ , connection )
@@ -61,7 +59,7 @@ defmodule OpenApiTypesense.Connection do
6159 raise ArgumentError , "Expected a map for connection options"
6260 end
6361
64- @ spec required_fields :: map ( )
62+ @ spec required_fields :: list ( atom ( ) )
6563 defp required_fields do
6664 struct ( __MODULE__ , % { } ) |> Map . drop ( [ :__struct__ ] ) |> Map . keys ( )
6765 end
0 commit comments