Packages
stripity_stripe
3.0.0
3.3.2
3.3.1
3.2.0
3.1.1
3.1.0
3.0.0
2.17.3
2.17.2
2.17.1
2.17.0
2.16.0
2.15.1
2.15.0
2.14.1
2.14.0
2.13.0
2.12.1
2.12.0
2.11.0
2.10.0
2.9.0
2.8.0
2.7.2
2.7.1
2.7.0
2.6.0
2.5.0
2.4.0
2.3.0
2.2.3
2.2.2
2.2.1
2.2.0
2.1.0
2.0.1
2.0.0
2.0.0-alpha.11
2.0.0-alpha.10
2.0.0-alpha.9
2.0.0-alpha.8
2.0.0-alpha.7
2.0.0-alpha.6
2.0.0-alpha.5
2.0.0-alpha.4
2.0.0-alpha.3
2.0.0-alpha.2
2.0.0-alpha.1
1.6.2
1.6.1
1.6.0
1.4.0
1.3.0
1.2.0
1.1.0
0.5.0
0.4.0
0.3.0
0.2.0
A Stripe client for Elixir.
Current section
Files
Jump to
Current section
Files
lib/open_api.ex
defmodule Stripe.OpenApi do
@moduledoc false
alias Stripe.OpenApi
defmacro __using__(opts) do
quote do
@pipeline Stripe.OpenApi.pipeline(unquote(opts))
{:ok, blueprint} = Stripe.OpenApi.run(@pipeline)
@version blueprint.api_version
end
end
def pipeline(options \\ []) do
[
{OpenApi.Phases.Parse, options},
{OpenApi.Phases.BuildModules, options},
{OpenApi.Phases.BuildOperations, options},
{OpenApi.Phases.BuildDocumentation, options},
{OpenApi.Phases.Compile, options},
{OpenApi.Phases.Version, options}
]
end
def run(pipeline) do
{:ok, _} =
pipeline
|> List.flatten()
|> run_phase(%OpenApiGen.Blueprint{})
end
defp run_phase(pipeline, input)
defp run_phase([], input) do
{:ok, input}
end
defp run_phase([phase_config | todo], input) do
{phase, options} = phase_invocation(phase_config)
case phase.run(input, options) do
{:ok, result} ->
run_phase(todo, result)
{:error, message} ->
{:error, message}
_ ->
{:error, "Last phase did not return a valid result tuple."}
end
end
defp phase_invocation({phase, options}) when is_list(options) do
{phase, options}
end
defp phase_invocation(phase) do
{phase, []}
end
end