Packages

Elixir library for generating HTTP clients from OpenAPI V3 json specifications

Current section

Files

Jump to
ex_oapi priv templates base_spec.eex
Raw

priv/templates/base_spec.eex

defmodule <%= @title %>.ExOAPI.Spec do
alias ExOAPI.Parser.V3.Context
@spec schemas_title() :: module()
def schemas_title(), do: <%= @schemas_title %>
@spec path(String.t()) :: Context.Paths.t()
def path(path), do: spec().paths[path]
@spec schemas() :: Context.Schema.Map.t()
def schemas(), do: spec().components.schemas
@doc false
@spec spec() :: Context.t()
def spec(), do: %Context{
openapi: <%= inspect(@ctx.openapi, limit: :infinity, printable_limit: :infinity, charlists: :as_lists, structs: false) %>,
<% :erlang.garbage_collect() %>
paths: <%= inspect(@ctx.paths, limit: :infinity, printable_limit: :infinity, charlists: :as_lists, structs: false) %>,
<% :erlang.garbage_collect() %>
security: <%= inspect(@ctx.security, limit: :infinity, printable_limit: :infinity, charlists: :as_lists, structs: false) %>,
<% :erlang.garbage_collect() %>
info: <%= inspect(@ctx.info, limit: :infinity, printable_limit: :infinity, charlists: :as_lists, structs: false) %>,
<% :erlang.garbage_collect() %>
servers: <%= inspect(@ctx.servers, limit: :infinity, printable_limit: :infinity, charlists: :as_lists, structs: false) %>,
<% :erlang.garbage_collect() %>
components: %Context.Components{
schemas: <%= inspect(@ctx.components.schemas, limit: :infinity, printable_limit: :infinity, charlists: :as_lists, structs: false) %>,
<% :erlang.garbage_collect() %>
responses: <%= inspect(@ctx.components.responses, limit: :infinity, printable_limit: :infinity, charlists: :as_lists, structs: false) %>,
<% :erlang.garbage_collect() %>
parameters: <%= inspect(@ctx.components.parameters, limit: :infinity, printable_limit: :infinity, charlists: :as_lists, structs: false) %>,
<% :erlang.garbage_collect() %>
examples: <%= inspect(@ctx.components.examples, limit: :infinity, printable_limit: :infinity, charlists: :as_lists, structs: false) %>,
<% :erlang.garbage_collect() %>
request_bodies: <%= inspect(@ctx.components.request_bodies, limit: :infinity, printable_limit: :infinity, charlists: :as_lists, structs: false) %>,
<% :erlang.garbage_collect() %>
headers: <%= inspect(@ctx.components.headers, limit: :infinity, printable_limit: :infinity, charlists: :as_lists, structs: false) %>,
<% :erlang.garbage_collect() %>
security_schemes: <%= inspect(@ctx.components.security_schemes, limit: :infinity, printable_limit: :infinity, charlists: :as_lists, structs: false) %>,
<% :erlang.garbage_collect() %>
links: <%= inspect(@ctx.components.links, limit: :infinity, printable_limit: :infinity, charlists: :as_lists, structs: false) %>,
<% :erlang.garbage_collect() %>
callbacks: <%= inspect(@ctx.components.callbacks, limit: :infinity, printable_limit: :infinity, charlists: :as_lists, structs: false) %>,
<% :erlang.garbage_collect() %>
}
}
end