-module(howdy@filter). -compile(no_auto_import). -export([must_accept/2, accepts_json/1, accepts_html/1]). -spec must_accept( fun((howdy@context:context()) -> gleam@http@response:response(gleam@bit_builder:bit_builder())), binary() ) -> fun((howdy@context:context()) -> gleam@http@response:response(gleam@bit_builder:bit_builder())). must_accept(Filter, Mime_type) -> fun(Context) -> case howdy@context@header:get_value(Context, <<"Accept"/utf8>>) of {ok, Value} when Value =:= Mime_type -> Filter(Context); _@1 -> howdy@response:of_not_found(<<""/utf8>>) end end. -spec accepts_json( fun((howdy@context:context()) -> gleam@http@response:response(gleam@bit_builder:bit_builder())) ) -> fun((howdy@context:context()) -> gleam@http@response:response(gleam@bit_builder:bit_builder())). accepts_json(Filter) -> must_accept(Filter, howdy@mime:from_extention(<<"json"/utf8>>)). -spec accepts_html( fun((howdy@context:context()) -> gleam@http@response:response(gleam@bit_builder:bit_builder())) ) -> fun((howdy@context:context()) -> gleam@http@response:response(gleam@bit_builder:bit_builder())). accepts_html(Filter) -> must_accept(Filter, howdy@mime:from_extention(<<"html"/utf8>>)).