Current section
Files
Jump to
Current section
Files
src/nori@paths.erl
-module(nori@paths).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/nori/paths.gleam").
-export([new/0, add/3, add_ref/3, get/1, post/1, put/1, delete/1, patch/1, with_get/2, with_post/2, with_put/2, with_delete/2, with_patch/2, with_parameters/2, with_servers/2, with_summary/2, with_description/2, get_operations/1]).
-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(
" Paths types for OpenAPI specifications.\n"
"\n"
" Holds the relative paths to individual endpoints.\n"
).
-file("src/nori/paths.gleam", 18).
?DOC(" Creates an empty `Paths` dictionary.\n").
-spec new() -> gleam@dict:dict(binary(), nori@reference:ref(nori@operation:path_item())).
new() ->
maps:new().
-file("src/nori/paths.gleam", 23).
?DOC(" Adds a path item to the paths.\n").
-spec add(
gleam@dict:dict(binary(), nori@reference:ref(nori@operation:path_item())),
binary(),
nori@operation:path_item()
) -> gleam@dict:dict(binary(), nori@reference:ref(nori@operation:path_item())).
add(Paths, Path, Item) ->
gleam@dict:insert(Paths, Path, {inline, Item}).
-file("src/nori/paths.gleam", 28).
?DOC(" Adds a path item reference to the paths.\n").
-spec add_ref(
gleam@dict:dict(binary(), nori@reference:ref(nori@operation:path_item())),
binary(),
binary()
) -> gleam@dict:dict(binary(), nori@reference:ref(nori@operation:path_item())).
add_ref(Paths, Path, Ref) ->
gleam@dict:insert(Paths, Path, {reference, Ref}).
-file("src/nori/paths.gleam", 33).
?DOC(" Creates a `PathItem` with a GET operation.\n").
-spec get(nori@operation:operation()) -> nori@operation:path_item().
get(Op) ->
{path_item,
none,
none,
none,
{some, Op},
none,
none,
none,
none,
none,
none,
none,
[],
[],
maps:new()}.
-file("src/nori/paths.gleam", 53).
?DOC(" Creates a `PathItem` with a POST operation.\n").
-spec post(nori@operation:operation()) -> nori@operation:path_item().
post(Op) ->
{path_item,
none,
none,
none,
none,
none,
{some, Op},
none,
none,
none,
none,
none,
[],
[],
maps:new()}.
-file("src/nori/paths.gleam", 73).
?DOC(" Creates a `PathItem` with a PUT operation.\n").
-spec put(nori@operation:operation()) -> nori@operation:path_item().
put(Op) ->
{path_item,
none,
none,
none,
none,
{some, Op},
none,
none,
none,
none,
none,
none,
[],
[],
maps:new()}.
-file("src/nori/paths.gleam", 93).
?DOC(" Creates a `PathItem` with a DELETE operation.\n").
-spec delete(nori@operation:operation()) -> nori@operation:path_item().
delete(Op) ->
{path_item,
none,
none,
none,
none,
none,
none,
{some, Op},
none,
none,
none,
none,
[],
[],
maps:new()}.
-file("src/nori/paths.gleam", 113).
?DOC(" Creates a `PathItem` with a PATCH operation.\n").
-spec patch(nori@operation:operation()) -> nori@operation:path_item().
patch(Op) ->
{path_item,
none,
none,
none,
none,
none,
none,
none,
none,
none,
{some, Op},
none,
[],
[],
maps:new()}.
-file("src/nori/paths.gleam", 133).
?DOC(" Adds a GET operation to an existing path item.\n").
-spec with_get(nori@operation:path_item(), nori@operation:operation()) -> nori@operation:path_item().
with_get(Item, Op) ->
{path_item,
erlang:element(2, Item),
erlang:element(3, Item),
erlang:element(4, Item),
{some, Op},
erlang:element(6, Item),
erlang:element(7, Item),
erlang:element(8, Item),
erlang:element(9, Item),
erlang:element(10, Item),
erlang:element(11, Item),
erlang:element(12, Item),
erlang:element(13, Item),
erlang:element(14, Item),
erlang:element(15, Item)}.
-file("src/nori/paths.gleam", 138).
?DOC(" Adds a POST operation to an existing path item.\n").
-spec with_post(nori@operation:path_item(), nori@operation:operation()) -> nori@operation:path_item().
with_post(Item, Op) ->
{path_item,
erlang:element(2, Item),
erlang:element(3, Item),
erlang:element(4, Item),
erlang:element(5, Item),
erlang:element(6, Item),
{some, Op},
erlang:element(8, Item),
erlang:element(9, Item),
erlang:element(10, Item),
erlang:element(11, Item),
erlang:element(12, Item),
erlang:element(13, Item),
erlang:element(14, Item),
erlang:element(15, Item)}.
-file("src/nori/paths.gleam", 143).
?DOC(" Adds a PUT operation to an existing path item.\n").
-spec with_put(nori@operation:path_item(), nori@operation:operation()) -> nori@operation:path_item().
with_put(Item, Op) ->
{path_item,
erlang:element(2, Item),
erlang:element(3, Item),
erlang:element(4, Item),
erlang:element(5, Item),
{some, Op},
erlang:element(7, Item),
erlang:element(8, Item),
erlang:element(9, Item),
erlang:element(10, Item),
erlang:element(11, Item),
erlang:element(12, Item),
erlang:element(13, Item),
erlang:element(14, Item),
erlang:element(15, Item)}.
-file("src/nori/paths.gleam", 148).
?DOC(" Adds a DELETE operation to an existing path item.\n").
-spec with_delete(nori@operation:path_item(), nori@operation:operation()) -> nori@operation:path_item().
with_delete(Item, Op) ->
{path_item,
erlang:element(2, Item),
erlang:element(3, Item),
erlang:element(4, Item),
erlang:element(5, Item),
erlang:element(6, Item),
erlang:element(7, Item),
{some, Op},
erlang:element(9, Item),
erlang:element(10, Item),
erlang:element(11, Item),
erlang:element(12, Item),
erlang:element(13, Item),
erlang:element(14, Item),
erlang:element(15, Item)}.
-file("src/nori/paths.gleam", 153).
?DOC(" Adds a PATCH operation to an existing path item.\n").
-spec with_patch(nori@operation:path_item(), nori@operation:operation()) -> nori@operation:path_item().
with_patch(Item, Op) ->
{path_item,
erlang:element(2, Item),
erlang:element(3, Item),
erlang:element(4, Item),
erlang:element(5, Item),
erlang:element(6, Item),
erlang:element(7, Item),
erlang:element(8, Item),
erlang:element(9, Item),
erlang:element(10, Item),
{some, Op},
erlang:element(12, Item),
erlang:element(13, Item),
erlang:element(14, Item),
erlang:element(15, Item)}.
-file("src/nori/paths.gleam", 158).
?DOC(" Adds parameters to a path item.\n").
-spec with_parameters(
nori@operation:path_item(),
list(nori@reference:ref(nori@parameter:parameter()))
) -> nori@operation:path_item().
with_parameters(Item, Params) ->
{path_item,
erlang:element(2, Item),
erlang:element(3, Item),
erlang:element(4, Item),
erlang:element(5, Item),
erlang:element(6, Item),
erlang:element(7, Item),
erlang:element(8, Item),
erlang:element(9, Item),
erlang:element(10, Item),
erlang:element(11, Item),
erlang:element(12, Item),
erlang:element(13, Item),
Params,
erlang:element(15, Item)}.
-file("src/nori/paths.gleam", 163).
?DOC(" Adds servers to a path item.\n").
-spec with_servers(nori@operation:path_item(), list(nori@server:server())) -> nori@operation:path_item().
with_servers(Item, Srvs) ->
{path_item,
erlang:element(2, Item),
erlang:element(3, Item),
erlang:element(4, Item),
erlang:element(5, Item),
erlang:element(6, Item),
erlang:element(7, Item),
erlang:element(8, Item),
erlang:element(9, Item),
erlang:element(10, Item),
erlang:element(11, Item),
erlang:element(12, Item),
Srvs,
erlang:element(14, Item),
erlang:element(15, Item)}.
-file("src/nori/paths.gleam", 168).
?DOC(" Sets the summary on a path item.\n").
-spec with_summary(nori@operation:path_item(), binary()) -> nori@operation:path_item().
with_summary(Item, Summ) ->
{path_item,
erlang:element(2, Item),
{some, Summ},
erlang:element(4, Item),
erlang:element(5, Item),
erlang:element(6, Item),
erlang:element(7, Item),
erlang:element(8, Item),
erlang:element(9, Item),
erlang:element(10, Item),
erlang:element(11, Item),
erlang:element(12, Item),
erlang:element(13, Item),
erlang:element(14, Item),
erlang:element(15, Item)}.
-file("src/nori/paths.gleam", 173).
?DOC(" Sets the description on a path item.\n").
-spec with_description(nori@operation:path_item(), binary()) -> nori@operation:path_item().
with_description(Item, Desc) ->
{path_item,
erlang:element(2, Item),
erlang:element(3, Item),
{some, Desc},
erlang:element(5, Item),
erlang:element(6, Item),
erlang:element(7, Item),
erlang:element(8, Item),
erlang:element(9, Item),
erlang:element(10, Item),
erlang:element(11, Item),
erlang:element(12, Item),
erlang:element(13, Item),
erlang:element(14, Item),
erlang:element(15, Item)}.
-file("src/nori/paths.gleam", 178).
?DOC(" Gets all operations from a path item as a list of tuples (method, operation).\n").
-spec get_operations(nori@operation:path_item()) -> list({binary(),
nori@operation:operation()}).
get_operations(Item) ->
Ops = [],
Ops@1 = case erlang:element(5, Item) of
{some, Op} ->
[{<<"get"/utf8>>, Op} | Ops];
none ->
Ops
end,
Ops@2 = case erlang:element(6, Item) of
{some, Op@1} ->
[{<<"put"/utf8>>, Op@1} | Ops@1];
none ->
Ops@1
end,
Ops@3 = case erlang:element(7, Item) of
{some, Op@2} ->
[{<<"post"/utf8>>, Op@2} | Ops@2];
none ->
Ops@2
end,
Ops@4 = case erlang:element(8, Item) of
{some, Op@3} ->
[{<<"delete"/utf8>>, Op@3} | Ops@3];
none ->
Ops@3
end,
Ops@5 = case erlang:element(9, Item) of
{some, Op@4} ->
[{<<"options"/utf8>>, Op@4} | Ops@4];
none ->
Ops@4
end,
Ops@6 = case erlang:element(10, Item) of
{some, Op@5} ->
[{<<"head"/utf8>>, Op@5} | Ops@5];
none ->
Ops@5
end,
Ops@7 = case erlang:element(11, Item) of
{some, Op@6} ->
[{<<"patch"/utf8>>, Op@6} | Ops@6];
none ->
Ops@6
end,
Ops@8 = case erlang:element(12, Item) of
{some, Op@7} ->
[{<<"trace"/utf8>>, Op@7} | Ops@7];
none ->
Ops@7
end,
Ops@8.