-module(oaspec@internal@codegen@import_analysis). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]). -define(FILEPATH, "src/oaspec/internal/codegen/import_analysis.gleam"). -export([operations_need_typed_schemas/1, operations_have_optional_params/1, operations_have_optional_body/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(false). -file("src/oaspec/internal/codegen/import_analysis.gleam", 14). ?DOC(false). -spec operations_need_typed_schemas( list({binary(), oaspec@internal@openapi@spec:operation(oaspec@internal@openapi@spec:resolved()), binary(), oaspec@internal@openapi@spec:http_method()}) ) -> boolean(). operations_need_typed_schemas(Operations) -> gleam@list:any( Operations, fun(Op) -> {_, Operation, _, _} = Op, Has_ref_body = case erlang:element(7, Operation) of {some, {value, Rb}} -> gleam@list:any( maps:to_list(erlang:element(3, Rb)), fun(Ce) -> {_, Mt} = Ce, case erlang:element(2, Mt) of {some, {reference, _, _}} -> true; {some, {inline, {object_schema, _, _, _, _, _, _}}} -> true; {some, {inline, {all_of_schema, _, _}}} -> true; _ -> false end end ); _ -> false end, Has_ref_params = gleam@list:any( erlang:element(6, Operation), fun(Ref_p) -> case Ref_p of {value, P} -> case erlang:element(6, P) of {parameter_schema, {reference, _, _}} -> true; _ -> false end; _ -> false end end ), Has_ref_body orelse Has_ref_params end ). -file("src/oaspec/internal/codegen/import_analysis.gleam", 48). ?DOC(false). -spec operations_have_optional_params( list({binary(), oaspec@internal@openapi@spec:operation(oaspec@internal@openapi@spec:resolved()), binary(), oaspec@internal@openapi@spec:http_method()}) ) -> boolean(). operations_have_optional_params(Operations) -> gleam@list:any( Operations, fun(Op) -> {_, Operation, _, _} = Op, gleam@list:any( erlang:element(6, Operation), fun(Ref_p) -> case Ref_p of {value, P} -> not erlang:element(5, P); _ -> false end end ) end ). -file("src/oaspec/internal/codegen/import_analysis.gleam", 63). ?DOC(false). -spec operations_have_optional_body( list({binary(), oaspec@internal@openapi@spec:operation(oaspec@internal@openapi@spec:resolved()), binary(), oaspec@internal@openapi@spec:http_method()}) ) -> boolean(). operations_have_optional_body(Operations) -> gleam@list:any( Operations, fun(Op) -> {_, Operation, _, _} = Op, case erlang:element(7, Operation) of {some, {value, Rb}} -> not erlang:element(4, Rb); _ -> false end end ).