Current section
Files
Jump to
Current section
Files
src/nori@builder@operation_builder.erl
-module(nori@builder@operation_builder).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/nori/builder/operation_builder.gleam").
-export([new/0, operation_id/2, summary/2, description/2, tags/2, deprecated/1, request_body/2, request_body_ref/2, json_body/2, response/3, response_ref/3, simple_response/3, json_response/4, json_response_ref/4, external_docs/2, external_docs_with_description/3, build/1, tag/2, parameter/2, parameter_ref/2, security/2, security_scheme/2, server/2]).
-export_type([operation_builder/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.
?MODULEDOC(" Builder for constructing Operation objects with a fluent API.\n").
-opaque operation_builder() :: {operation_builder, nori@operation:operation()}.
-file("src/nori/builder/operation_builder.gleam", 20).
?DOC(" Creates a new operation builder.\n").
-spec new() -> operation_builder().
new() ->
{operation_builder, nori@operation:new()}.
-file("src/nori/builder/operation_builder.gleam", 25).
?DOC(" Sets the operation ID.\n").
-spec operation_id(operation_builder(), binary()) -> operation_builder().
operation_id(Builder, Id) ->
{operation_builder,
begin
_record = erlang:element(2, Builder),
{operation,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
erlang:element(5, _record),
{some, Id},
erlang:element(7, _record),
erlang:element(8, _record),
erlang:element(9, _record),
erlang:element(10, _record),
erlang:element(11, _record),
erlang:element(12, _record),
erlang:element(13, _record),
erlang:element(14, _record)}
end}.
-file("src/nori/builder/operation_builder.gleam", 32).
?DOC(" Sets the summary.\n").
-spec summary(operation_builder(), binary()) -> operation_builder().
summary(Builder, S) ->
{operation_builder,
begin
_record = erlang:element(2, Builder),
{operation,
erlang:element(2, _record),
{some, S},
erlang:element(4, _record),
erlang:element(5, _record),
erlang:element(6, _record),
erlang:element(7, _record),
erlang:element(8, _record),
erlang:element(9, _record),
erlang:element(10, _record),
erlang:element(11, _record),
erlang:element(12, _record),
erlang:element(13, _record),
erlang:element(14, _record)}
end}.
-file("src/nori/builder/operation_builder.gleam", 39).
?DOC(" Sets the description.\n").
-spec description(operation_builder(), binary()) -> operation_builder().
description(Builder, D) ->
{operation_builder,
begin
_record = erlang:element(2, Builder),
{operation,
erlang:element(2, _record),
erlang:element(3, _record),
{some, D},
erlang:element(5, _record),
erlang:element(6, _record),
erlang:element(7, _record),
erlang:element(8, _record),
erlang:element(9, _record),
erlang:element(10, _record),
erlang:element(11, _record),
erlang:element(12, _record),
erlang:element(13, _record),
erlang:element(14, _record)}
end}.
-file("src/nori/builder/operation_builder.gleam", 56).
?DOC(" Sets multiple tags.\n").
-spec tags(operation_builder(), list(binary())) -> operation_builder().
tags(Builder, Ts) ->
{operation_builder,
begin
_record = erlang:element(2, Builder),
{operation,
Ts,
erlang:element(3, _record),
erlang:element(4, _record),
erlang:element(5, _record),
erlang:element(6, _record),
erlang:element(7, _record),
erlang:element(8, _record),
erlang:element(9, _record),
erlang:element(10, _record),
erlang:element(11, _record),
erlang:element(12, _record),
erlang:element(13, _record),
erlang:element(14, _record)}
end}.
-file("src/nori/builder/operation_builder.gleam", 61).
?DOC(" Marks as deprecated.\n").
-spec deprecated(operation_builder()) -> operation_builder().
deprecated(Builder) ->
{operation_builder,
begin
_record = erlang:element(2, Builder),
{operation,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
erlang:element(5, _record),
erlang:element(6, _record),
erlang:element(7, _record),
erlang:element(8, _record),
erlang:element(9, _record),
erlang:element(10, _record),
{some, true},
erlang:element(12, _record),
erlang:element(13, _record),
erlang:element(14, _record)}
end}.
-file("src/nori/builder/operation_builder.gleam", 91).
?DOC(" Sets the request body.\n").
-spec request_body(operation_builder(), nori@request_body:request_body()) -> operation_builder().
request_body(Builder, Body) ->
{operation_builder,
begin
_record = erlang:element(2, Builder),
{operation,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
erlang:element(5, _record),
erlang:element(6, _record),
erlang:element(7, _record),
{some, {inline, Body}},
erlang:element(9, _record),
erlang:element(10, _record),
erlang:element(11, _record),
erlang:element(12, _record),
erlang:element(13, _record),
erlang:element(14, _record)}
end}.
-file("src/nori/builder/operation_builder.gleam", 104).
?DOC(" Sets the request body reference.\n").
-spec request_body_ref(operation_builder(), binary()) -> operation_builder().
request_body_ref(Builder, Ref) ->
{operation_builder,
begin
_record = erlang:element(2, Builder),
{operation,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
erlang:element(5, _record),
erlang:element(6, _record),
erlang:element(7, _record),
{some, {reference, Ref}},
erlang:element(9, _record),
erlang:element(10, _record),
erlang:element(11, _record),
erlang:element(12, _record),
erlang:element(13, _record),
erlang:element(14, _record)}
end}.
-file("src/nori/builder/operation_builder.gleam", 117).
?DOC(" Sets a JSON request body.\n").
-spec json_body(operation_builder(), nori@schema:schema()) -> operation_builder().
json_body(Builder, Schema) ->
Media_type = {media_type,
{some, {inline, Schema}},
none,
none,
none,
maps:new()},
Body = {request_body,
none,
maps:from_list([{<<"application/json"/utf8>>, Media_type}]),
{some, true},
maps:new()},
{operation_builder,
begin
_record = erlang:element(2, Builder),
{operation,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
erlang:element(5, _record),
erlang:element(6, _record),
erlang:element(7, _record),
{some, {inline, Body}},
erlang:element(9, _record),
erlang:element(10, _record),
erlang:element(11, _record),
erlang:element(12, _record),
erlang:element(13, _record),
erlang:element(14, _record)}
end}.
-file("src/nori/builder/operation_builder.gleam", 142).
?DOC(" Adds a response.\n").
-spec response(operation_builder(), binary(), nori@response:response()) -> operation_builder().
response(Builder, Status_code, Resp) ->
Responses = gleam@dict:insert(
erlang:element(9, erlang:element(2, Builder)),
Status_code,
{inline, Resp}
),
{operation_builder,
begin
_record = erlang:element(2, Builder),
{operation,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
erlang:element(5, _record),
erlang:element(6, _record),
erlang:element(7, _record),
erlang:element(8, _record),
Responses,
erlang:element(10, _record),
erlang:element(11, _record),
erlang:element(12, _record),
erlang:element(13, _record),
erlang:element(14, _record)}
end}.
-file("src/nori/builder/operation_builder.gleam", 159).
?DOC(" Adds a response reference.\n").
-spec response_ref(operation_builder(), binary(), binary()) -> operation_builder().
response_ref(Builder, Status_code, Ref) ->
Responses = gleam@dict:insert(
erlang:element(9, erlang:element(2, Builder)),
Status_code,
{reference, Ref}
),
{operation_builder,
begin
_record = erlang:element(2, Builder),
{operation,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
erlang:element(5, _record),
erlang:element(6, _record),
erlang:element(7, _record),
erlang:element(8, _record),
Responses,
erlang:element(10, _record),
erlang:element(11, _record),
erlang:element(12, _record),
erlang:element(13, _record),
erlang:element(14, _record)}
end}.
-file("src/nori/builder/operation_builder.gleam", 176).
?DOC(" Adds a simple response with just a description.\n").
-spec simple_response(operation_builder(), binary(), binary()) -> operation_builder().
simple_response(Builder, Status_code, Desc) ->
Resp = nori@response:new(Desc),
Responses = gleam@dict:insert(
erlang:element(9, erlang:element(2, Builder)),
Status_code,
{inline, Resp}
),
{operation_builder,
begin
_record = erlang:element(2, Builder),
{operation,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
erlang:element(5, _record),
erlang:element(6, _record),
erlang:element(7, _record),
erlang:element(8, _record),
Responses,
erlang:element(10, _record),
erlang:element(11, _record),
erlang:element(12, _record),
erlang:element(13, _record),
erlang:element(14, _record)}
end}.
-file("src/nori/builder/operation_builder.gleam", 194).
?DOC(" Adds a JSON response.\n").
-spec json_response(
operation_builder(),
binary(),
binary(),
nori@schema:schema()
) -> operation_builder().
json_response(Builder, Status_code, Desc, Schema) ->
Media_type = {media_type,
{some, {inline, Schema}},
none,
none,
none,
maps:new()},
Resp = {response,
Desc,
maps:new(),
maps:from_list([{<<"application/json"/utf8>>, Media_type}]),
maps:new(),
maps:new()},
Responses = gleam@dict:insert(
erlang:element(9, erlang:element(2, Builder)),
Status_code,
{inline, Resp}
),
{operation_builder,
begin
_record = erlang:element(2, Builder),
{operation,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
erlang:element(5, _record),
erlang:element(6, _record),
erlang:element(7, _record),
erlang:element(8, _record),
Responses,
erlang:element(10, _record),
erlang:element(11, _record),
erlang:element(12, _record),
erlang:element(13, _record),
erlang:element(14, _record)}
end}.
-file("src/nori/builder/operation_builder.gleam", 228).
?DOC(" Adds a JSON response with a schema reference.\n").
-spec json_response_ref(operation_builder(), binary(), binary(), binary()) -> operation_builder().
json_response_ref(Builder, Status_code, Desc, Schema_ref) ->
Media_type = {media_type,
{some, {reference, Schema_ref}},
none,
none,
none,
maps:new()},
Resp = {response,
Desc,
maps:new(),
maps:from_list([{<<"application/json"/utf8>>, Media_type}]),
maps:new(),
maps:new()},
Responses = gleam@dict:insert(
erlang:element(9, erlang:element(2, Builder)),
Status_code,
{inline, Resp}
),
{operation_builder,
begin
_record = erlang:element(2, Builder),
{operation,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
erlang:element(5, _record),
erlang:element(6, _record),
erlang:element(7, _record),
erlang:element(8, _record),
Responses,
erlang:element(10, _record),
erlang:element(11, _record),
erlang:element(12, _record),
erlang:element(13, _record),
erlang:element(14, _record)}
end}.
-file("src/nori/builder/operation_builder.gleam", 301).
?DOC(" Sets external documentation.\n").
-spec external_docs(operation_builder(), binary()) -> operation_builder().
external_docs(Builder, Url) ->
Docs = {external_documentation, Url, none, maps:new()},
{operation_builder,
begin
_record = erlang:element(2, Builder),
{operation,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
{some, Docs},
erlang:element(6, _record),
erlang:element(7, _record),
erlang:element(8, _record),
erlang:element(9, _record),
erlang:element(10, _record),
erlang:element(11, _record),
erlang:element(12, _record),
erlang:element(13, _record),
erlang:element(14, _record)}
end}.
-file("src/nori/builder/operation_builder.gleam", 314).
?DOC(" Sets external documentation with description.\n").
-spec external_docs_with_description(operation_builder(), binary(), binary()) -> operation_builder().
external_docs_with_description(Builder, Url, Desc) ->
Docs = {external_documentation, Url, {some, Desc}, maps:new()},
{operation_builder,
begin
_record = erlang:element(2, Builder),
{operation,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
{some, Docs},
erlang:element(6, _record),
erlang:element(7, _record),
erlang:element(8, _record),
erlang:element(9, _record),
erlang:element(10, _record),
erlang:element(11, _record),
erlang:element(12, _record),
erlang:element(13, _record),
erlang:element(14, _record)}
end}.
-file("src/nori/builder/operation_builder.gleam", 331).
?DOC(" Builds the operation.\n").
-spec build(operation_builder()) -> nori@operation:operation().
build(Builder) ->
erlang:element(2, Builder).
-file("src/nori/builder/operation_builder.gleam", 344).
-spec do_reverse(list(RNL), list(RNL)) -> list(RNL).
do_reverse(Remaining, Acc) ->
case Remaining of
[] ->
Acc;
[First | Rest] ->
do_reverse(Rest, [First | Acc])
end.
-file("src/nori/builder/operation_builder.gleam", 340).
-spec list_reverse(list(RNI)) -> list(RNI).
list_reverse(List) ->
do_reverse(List, []).
-file("src/nori/builder/operation_builder.gleam", 336).
-spec append(list(RNF), RNF) -> list(RNF).
append(List, Item) ->
list_reverse([Item | list_reverse(List)]).
-file("src/nori/builder/operation_builder.gleam", 46).
?DOC(" Adds a tag.\n").
-spec tag(operation_builder(), binary()) -> operation_builder().
tag(Builder, T) ->
{operation_builder,
begin
_record = erlang:element(2, Builder),
{operation,
append(erlang:element(2, erlang:element(2, Builder)), T),
erlang:element(3, _record),
erlang:element(4, _record),
erlang:element(5, _record),
erlang:element(6, _record),
erlang:element(7, _record),
erlang:element(8, _record),
erlang:element(9, _record),
erlang:element(10, _record),
erlang:element(11, _record),
erlang:element(12, _record),
erlang:element(13, _record),
erlang:element(14, _record)}
end}.
-file("src/nori/builder/operation_builder.gleam", 68).
?DOC(" Adds a parameter.\n").
-spec parameter(operation_builder(), nori@parameter:parameter()) -> operation_builder().
parameter(Builder, Param) ->
{operation_builder,
begin
_record = erlang:element(2, Builder),
{operation,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
erlang:element(5, _record),
erlang:element(6, _record),
append(
erlang:element(7, erlang:element(2, Builder)),
{inline, Param}
),
erlang:element(8, _record),
erlang:element(9, _record),
erlang:element(10, _record),
erlang:element(11, _record),
erlang:element(12, _record),
erlang:element(13, _record),
erlang:element(14, _record)}
end}.
-file("src/nori/builder/operation_builder.gleam", 81).
?DOC(" Adds a parameter reference.\n").
-spec parameter_ref(operation_builder(), binary()) -> operation_builder().
parameter_ref(Builder, Ref) ->
{operation_builder,
begin
_record = erlang:element(2, Builder),
{operation,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
erlang:element(5, _record),
erlang:element(6, _record),
append(
erlang:element(7, erlang:element(2, Builder)),
{reference, Ref}
),
erlang:element(8, _record),
erlang:element(9, _record),
erlang:element(10, _record),
erlang:element(11, _record),
erlang:element(12, _record),
erlang:element(13, _record),
erlang:element(14, _record)}
end}.
-file("src/nori/builder/operation_builder.gleam", 262).
?DOC(" Adds a security requirement.\n").
-spec security(operation_builder(), gleam@dict:dict(binary(), list(binary()))) -> operation_builder().
security(Builder, Req) ->
Current = gleam@option:unwrap(
erlang:element(12, erlang:element(2, Builder)),
[]
),
{operation_builder,
begin
_record = erlang:element(2, Builder),
{operation,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
erlang:element(5, _record),
erlang:element(6, _record),
erlang:element(7, _record),
erlang:element(8, _record),
erlang:element(9, _record),
erlang:element(10, _record),
erlang:element(11, _record),
{some, append(Current, Req)},
erlang:element(13, _record),
erlang:element(14, _record)}
end}.
-file("src/nori/builder/operation_builder.gleam", 276).
?DOC(" Adds a simple security requirement (security scheme with no scopes).\n").
-spec security_scheme(operation_builder(), binary()) -> operation_builder().
security_scheme(Builder, Scheme_name) ->
Req = maps:from_list([{Scheme_name, []}]),
Current = gleam@option:unwrap(
erlang:element(12, erlang:element(2, Builder)),
[]
),
{operation_builder,
begin
_record = erlang:element(2, Builder),
{operation,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
erlang:element(5, _record),
erlang:element(6, _record),
erlang:element(7, _record),
erlang:element(8, _record),
erlang:element(9, _record),
erlang:element(10, _record),
erlang:element(11, _record),
{some, append(Current, Req)},
erlang:element(13, _record),
erlang:element(14, _record)}
end}.
-file("src/nori/builder/operation_builder.gleam", 291).
?DOC(" Adds a server.\n").
-spec server(operation_builder(), nori@server:server()) -> operation_builder().
server(Builder, S) ->
{operation_builder,
begin
_record = erlang:element(2, Builder),
{operation,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
erlang:element(5, _record),
erlang:element(6, _record),
erlang:element(7, _record),
erlang:element(8, _record),
erlang:element(9, _record),
erlang:element(10, _record),
erlang:element(11, _record),
erlang:element(12, _record),
append(erlang:element(13, erlang:element(2, Builder)), S),
erlang:element(14, _record)}
end}.