-
Notifications
You must be signed in to change notification settings - Fork 49
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[DRAFT] Elixir Optional parameters #113
base: master
Are you sure you want to change the base?
Conversation
type info to Action and improve elixir docs with it.
I'd still like to validate the optional parameters with Possible solutions: I think option a. is easier, and cleaner. Will draft that up. |
Since the operations already take a client
|> put_opts() # do things before
|> get_bucket_website() # only about operations |
Ah, that's actually a really good idea! Completely bypasses the issue. defmodule AWS.Client do
[...]
def put_http_opts(%__MODULE__{} = client, opts) do
{http_client, default_opts} = client.http_client
final_opts = Keyword.merge(default_opts, opts)
client
|> AWS.Client.put_http_client({http_client, opts})
end
end
my_client
|> AWS.Client.put_http_opts(foo: false)
|> get_bucket_website() What do you think? |
That works; it is similar to https://github.com/elixir-tesla/tesla/blob/d39d575af3edb87cc156b803317ebb7f7670b45f/lib/tesla.ex#L182 So some extent, you are chasing something similar to Tesla but one layer above |
I went ahead with this and now have optional parameter validation: Basic tests here: https://github.com/Doerge/aws-elixir/blob/dev/optional-parameters-wip-2/test/aws/generated/s3_test.exs |
This PR:
https://github.com/aws-beam/aws-elixir/blob/master/lib/aws/generated/s3.ex#L8374
Latest (16/7/2024):
https://github.com/Doerge/aws-elixir/blob/140deecfb1387b14bf5da4c683b4086b44bf9629/lib/aws/generated/s3.ex#L7655
TODO: