Current section

Files

Jump to
oaspec src oaspec@openapi@spec.erl
Raw

src/oaspec@openapi@spec.erl

-module(oaspec@openapi@spec).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/oaspec/openapi/spec.gleam").
-export([method_to_string/1, method_to_lower/1]).
-export_type([open_api_spec/0, info/0, server/0, components/0, path_item/0, operation/0, parameter_in/0, parameter/0, request_body/0, media_type/0, response/0, http_method/0]).
-if(?OTP_RELEASE >= 27).
-define(MODULEDOC(Str), -moduledoc(Str)).
-define(DOC(Str), -doc(Str)).
-else.
-define(MODULEDOC(Str), -compile([])).
-define(DOC(Str), -compile([])).
-endif.
-type open_api_spec() :: {open_api_spec,
binary(),
info(),
gleam@dict:dict(binary(), path_item()),
gleam@option:option(components()),
list(server())}.
-type info() :: {info, binary(), gleam@option:option(binary()), binary()}.
-type server() :: {server, binary(), gleam@option:option(binary())}.
-type components() :: {components,
gleam@dict:dict(binary(), oaspec@openapi@schema:schema_ref()),
gleam@dict:dict(binary(), parameter()),
gleam@dict:dict(binary(), request_body()),
gleam@dict:dict(binary(), response())}.
-type path_item() :: {path_item,
gleam@option:option(binary()),
gleam@option:option(binary()),
gleam@option:option(operation()),
gleam@option:option(operation()),
gleam@option:option(operation()),
gleam@option:option(operation()),
gleam@option:option(operation()),
list(parameter())}.
-type operation() :: {operation,
gleam@option:option(binary()),
gleam@option:option(binary()),
gleam@option:option(binary()),
list(binary()),
list(parameter()),
gleam@option:option(request_body()),
gleam@dict:dict(binary(), response()),
boolean()}.
-type parameter_in() :: in_path | in_query | in_header | in_cookie.
-type parameter() :: {parameter,
binary(),
parameter_in(),
gleam@option:option(binary()),
boolean(),
gleam@option:option(oaspec@openapi@schema:schema_ref()),
gleam@option:option(binary()),
boolean()}.
-type request_body() :: {request_body,
gleam@option:option(binary()),
gleam@dict:dict(binary(), media_type()),
boolean()}.
-type media_type() :: {media_type,
gleam@option:option(oaspec@openapi@schema:schema_ref())}.
-type response() :: {response,
gleam@option:option(binary()),
gleam@dict:dict(binary(), media_type())}.
-type http_method() :: get | post | put | delete | patch.
-file("src/oaspec/openapi/spec.gleam", 114).
?DOC(" Convert HTTP method to string.\n").
-spec method_to_string(http_method()) -> binary().
method_to_string(Method) ->
case Method of
get ->
<<"GET"/utf8>>;
post ->
<<"POST"/utf8>>;
put ->
<<"PUT"/utf8>>;
delete ->
<<"DELETE"/utf8>>;
patch ->
<<"PATCH"/utf8>>
end.
-file("src/oaspec/openapi/spec.gleam", 125).
?DOC(" Convert HTTP method to lowercase string.\n").
-spec method_to_lower(http_method()) -> binary().
method_to_lower(Method) ->
case Method of
get ->
<<"get"/utf8>>;
post ->
<<"post"/utf8>>;
put ->
<<"put"/utf8>>;
delete ->
<<"delete"/utf8>>;
patch ->
<<"patch"/utf8>>
end.