Packages
oaspec
0.48.0
0.68.0
0.67.0
0.66.0
0.65.0
0.64.0
0.63.0
0.62.0
0.61.0
0.60.0
0.59.0
0.58.1
0.58.0
0.57.0
0.56.0
0.55.0
0.54.0
0.53.0
0.52.0
0.51.0
0.50.0
0.49.0
0.48.0
0.47.0
0.46.0
0.45.0
0.44.0
0.43.0
0.42.0
0.41.0
0.40.0
0.39.0
0.38.0
0.37.0
0.36.0
0.35.0
0.34.0
0.33.0
0.32.0
0.31.0
0.30.0
0.29.0
0.28.0
0.27.0
0.26.0
0.25.0
0.24.0
0.23.0
0.22.0
0.21.0
0.20.0
0.19.0
0.18.0
0.17.0
0.16.0
0.15.0
0.14.0
0.13.0
0.12.0
0.11.0
0.10.0
0.9.0
0.8.0
0.7.0
0.6.3
0.6.1
0.6.0
0.5.0
0.4.0
0.3.0
0.1.3
Generate Gleam code from OpenAPI 3.x specifications
Current section
Files
Jump to
Current section
Files
src/oaspec@internal@util@content_type.erl
-module(oaspec@internal@util@content_type).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/oaspec/internal/util/content_type.gleam").
-export([from_string/1, is_json_compatible/1, is_xml_compatible/1, to_string/1, is_supported/1, is_supported_request/1, is_supported_response/1]).
-export_type([content_type/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(false).
-type content_type() :: application_json |
text_plain |
multipart_form_data |
form_url_encoded |
application_octet_stream |
application_xml |
text_xml |
{unsupported_content_type, binary()}.
-file("src/oaspec/internal/util/content_type.gleam", 42).
?DOC(false).
-spec from_string(binary()) -> content_type().
from_string(Content_type) ->
case Content_type of
<<"application/json"/utf8>> ->
application_json;
<<"text/plain"/utf8>> ->
text_plain;
<<"application/x-ndjson"/utf8>> ->
text_plain;
<<"multipart/form-data"/utf8>> ->
multipart_form_data;
<<"application/x-www-form-urlencoded"/utf8>> ->
form_url_encoded;
<<"application/octet-stream"/utf8>> ->
application_octet_stream;
<<"application/xml"/utf8>> ->
application_xml;
<<"text/xml"/utf8>> ->
text_xml;
Other ->
case gleam_stdlib:string_ends_with(Other, <<"+json"/utf8>>) of
true ->
application_json;
false ->
case gleam_stdlib:string_ends_with(Other, <<"+xml"/utf8>>) of
true ->
application_xml;
false ->
case gleam_stdlib:string_starts_with(
Other,
<<"text/"/utf8>>
) of
true ->
text_plain;
false ->
case gleam_stdlib:string_starts_with(
Other,
<<"application/"/utf8>>
) of
true ->
application_octet_stream;
false ->
{unsupported_content_type, Other}
end
end
end
end
end.
-file("src/oaspec/internal/util/content_type.gleam", 82).
?DOC(false).
-spec is_json_compatible(binary()) -> boolean().
is_json_compatible(S) ->
(S =:= <<"application/json"/utf8>>) orelse gleam_stdlib:string_ends_with(
S,
<<"+json"/utf8>>
).
-file("src/oaspec/internal/util/content_type.gleam", 88).
?DOC(false).
-spec is_xml_compatible(binary()) -> boolean().
is_xml_compatible(S) ->
((S =:= <<"application/xml"/utf8>>) orelse (S =:= <<"text/xml"/utf8>>))
orelse gleam_stdlib:string_ends_with(S, <<"+xml"/utf8>>).
-file("src/oaspec/internal/util/content_type.gleam", 93).
?DOC(false).
-spec to_string(content_type()) -> binary().
to_string(Content_type) ->
case Content_type of
application_json ->
<<"application/json"/utf8>>;
text_plain ->
<<"text/plain"/utf8>>;
multipart_form_data ->
<<"multipart/form-data"/utf8>>;
form_url_encoded ->
<<"application/x-www-form-urlencoded"/utf8>>;
application_octet_stream ->
<<"application/octet-stream"/utf8>>;
application_xml ->
<<"application/xml"/utf8>>;
text_xml ->
<<"text/xml"/utf8>>;
{unsupported_content_type, S} ->
S
end.
-file("src/oaspec/internal/util/content_type.gleam", 107).
?DOC(false).
-spec is_supported(content_type()) -> boolean().
is_supported(Content_type) ->
case Content_type of
application_json ->
true;
text_plain ->
true;
multipart_form_data ->
true;
form_url_encoded ->
true;
application_octet_stream ->
true;
application_xml ->
true;
text_xml ->
true;
_ ->
false
end.
-file("src/oaspec/internal/util/content_type.gleam", 140).
?DOC(false).
-spec registry_has_supported(binary(), binary()) -> boolean().
registry_has_supported(Name, Category) ->
_pipe = oaspec@internal@capability:registry(),
gleam@list:any(
_pipe,
fun(C) ->
((erlang:element(2, C) =:= Name) andalso (erlang:element(3, C) =:= Category))
andalso (erlang:element(4, C) =:= supported)
end
).
-file("src/oaspec/internal/util/content_type.gleam", 124).
?DOC(false).
-spec is_supported_request(content_type()) -> boolean().
is_supported_request(Content_type) ->
case Content_type of
{unsupported_content_type, _} ->
false;
Ct ->
registry_has_supported(to_string(Ct), <<"request"/utf8>>)
end.
-file("src/oaspec/internal/util/content_type.gleam", 133).
?DOC(false).
-spec is_supported_response(content_type()) -> boolean().
is_supported_response(Content_type) ->
case Content_type of
{unsupported_content_type, _} ->
false;
Ct ->
registry_has_supported(to_string(Ct), <<"response"/utf8>>)
end.