add content-type header

This commit is contained in:
Swrup 2025-09-28 19:37:49 +02:00
parent 0447857d1e
commit 06332cac8c
4 changed files with 66 additions and 57 deletions

View file

@ -1,14 +1,15 @@
let avail_languages_header_value =
let pp_avail_languages = Fmt.array ~sep:(Fmt.any ", ") Fmt.string in
let s = Fmt.str "%a" pp_avail_languages Assets.supported_lang_arr in
let pp_array = Fmt.array ~sep:(Fmt.any ", ") Fmt.string in
let s = Fmt.str "%a" pp_array Assets.supported_lang_arr in
s
let select_extension headers =
let select_mimetype 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
|> List.filter_map (fun (_q, (m, _p)) -> Util.media_to_known_mimetype m)
|> List.find_opt Assets.is_supported_mimetype
|> Option.to_result ~none:"no acceptable mimetype"
let select_language headers =
let accept_language = Vif.Headers.get headers "accept-language" in
@ -23,6 +24,7 @@ let select_language headers =
| [] -> assert false
| primary_tag :: _ -> primary_tag))
|> List.find_opt Assets.is_supported_lang
|> Option.to_result ~none:"no acceptable language"
let select_encoding headers =
Vif.Headers.get headers "accept-encoding"