Packages
oaspec
0.12.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@util@content_type.erl
-module(oaspec@util@content_type).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/oaspec/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.
-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/util/content_type.gleam", 18).
?DOC(
" Parse a content type string into a ContentType.\n"
" Recognizes structured syntax suffixes: types ending with `+json` are\n"
" treated as JSON-compatible, and types ending with `+xml` as XML-compatible.\n"
).
-spec from_string(binary()) -> content_type().
from_string(Content_type) ->
case Content_type of
<<"application/json"/utf8>> ->
application_json;
<<"text/plain"/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 ->
{unsupported_content_type, Other}
end
end
end.
-file("src/oaspec/util/content_type.gleam", 41).
?DOC(
" Check if a content type string is JSON-compatible.\n"
" Matches \"application/json\" and any type with a \"+json\" suffix.\n"
).
-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/util/content_type.gleam", 47).
?DOC(
" Check if a content type string is XML-compatible.\n"
" Matches \"application/xml\", \"text/xml\", and any type with a \"+xml\" suffix.\n"
).
-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/util/content_type.gleam", 52).
?DOC(" Convert a ContentType back to its string representation.\n").
-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/util/content_type.gleam", 66).
?DOC(" Check if a content type is supported anywhere in code generation.\n").
-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/util/content_type.gleam", 80).
?DOC(" Check if a content type is supported for request bodies.\n").
-spec is_supported_request(content_type()) -> boolean().
is_supported_request(Content_type) ->
case Content_type of
application_json ->
true;
multipart_form_data ->
true;
form_url_encoded ->
true;
_ ->
false
end.
-file("src/oaspec/util/content_type.gleam", 90).
?DOC(" Check if a content type is supported for responses.\n").
-spec is_supported_response(content_type()) -> boolean().
is_supported_response(Content_type) ->
case Content_type of
application_json ->
true;
text_plain ->
true;
application_octet_stream ->
true;
application_xml ->
true;
text_xml ->
true;
_ ->
false
end.