Current section

Files

Jump to
oaspec src oaspec@internal@codegen@operation_ir.erl
Raw

src/oaspec@internal@codegen@operation_ir.erl

-module(oaspec@internal@codegen@operation_ir).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/oaspec/internal/codegen/operation_ir.gleam").
-export([effective_explode/1, delimiter_for_style/1, is_deep_object_param/2]).
-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(false).
-file("src/oaspec/internal/codegen/operation_ir.gleam", 9).
?DOC(false).
-spec effective_explode(
oaspec@internal@openapi@spec:parameter(oaspec@internal@openapi@spec:resolved())
) -> boolean().
effective_explode(Param) ->
case erlang:element(8, Param) of
{some, V} ->
V;
none ->
case erlang:element(7, Param) of
{some, form_style} ->
true;
{some, deep_object_style} ->
true;
none ->
true;
_ ->
false
end
end.
-file("src/oaspec/internal/codegen/operation_ir.gleam", 22).
?DOC(false).
-spec delimiter_for_style(
gleam@option:option(oaspec@internal@openapi@spec:parameter_style())
) -> binary().
delimiter_for_style(Style) ->
case Style of
{some, pipe_delimited_style} ->
<<"|"/utf8>>;
{some, space_delimited_style} ->
<<" "/utf8>>;
_ ->
<<","/utf8>>
end.
-file("src/oaspec/internal/codegen/operation_ir.gleam", 32).
?DOC(false).
-spec is_deep_object_param(
oaspec@internal@openapi@spec:parameter(oaspec@internal@openapi@spec:resolved()),
oaspec@internal@codegen@context:context()
) -> boolean().
is_deep_object_param(Param, Ctx) ->
case {erlang:element(3, Param),
erlang:element(7, Param),
oaspec@internal@openapi@spec:parameter_schema(Param)} of
{in_query,
{some, deep_object_style},
{some, {reference, _, _} = Schema_ref}} ->
case oaspec@internal@codegen@context:resolve_schema_ref(
Schema_ref,
Ctx
) of
{ok, {object_schema, _, _, _, _, _, _}} ->
true;
_ ->
false
end;
{in_query,
{some, deep_object_style},
{some, {inline, {object_schema, _, _, _, _, _, _}}}} ->
true;
{_, _, _} ->
false
end.