From 50b77108f12bf5581c87c01c925b8cf1cd570483 Mon Sep 17 00:00:00 2001 From: Swrup Date: Sat, 27 Sep 2025 20:44:31 +0200 Subject: [PATCH] ~ Header_util --- src/mte.ml | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/src/mte.ml b/src/mte.ml index e99bcdba..935ea582 100644 --- a/src/mte.ml +++ b/src/mte.ml @@ -15,14 +15,14 @@ along with this program. If not, see . *) module Header_util = struct - let parse_accept_header = - fun headers -> + let select_extension headers = let accept = Vif.Headers.get headers "accept" in Cohttp.Accept.media_ranges accept |> Cohttp.Accept.qsort |> List.filter_map (fun (_q, (m, _p)) -> Util.media_to_extension m) + |> List.find_opt Assets.is_supported_ext - let parse_accept_language_header headers = + let select_language headers = let accept_language = Vif.Headers.get headers "accept-language" in Cohttp.Accept.languages accept_language |> Cohttp.Accept.qsort @@ -34,6 +34,7 @@ module Header_util = struct match language_range with | [] -> assert false | primary_tag :: _ -> primary_tag)) + |> List.find_opt Assets.is_supported_lang let select_encoding headers = Vif.Headers.get headers "accept-encoding" @@ -74,15 +75,11 @@ module Static = struct let select_file headers kind = let open Syntax in let* ext = - headers - |> Header_util.parse_accept_header - |> List.find_opt Assets.is_supported_ext + Header_util.select_extension headers |> Option.to_result ~none:"no acceptable mimetype" in let* lang = - headers - |> Header_util.parse_accept_language_header - |> List.find_opt Assets.is_supported_lang + Header_util.select_language headers |> Option.to_result ~none:"no acceptable language" in let content = Assets.get_content ~lang ~ext kind in