diff --git a/src/config.ml b/src/config.ml index e9481024..31e1fa72 100644 --- a/src/config.ml +++ b/src/config.ml @@ -4,3 +4,15 @@ let terms_dir = Fpath.(v "terms") let terms_etag = "0" let privacy_dir = Fpath.(v "privacy") let privacy_etag = "0" + +(* todo: should be infered from folder structure? *) +let supported_languages = [| "en"; "fr" |] + +(* +let supported_extensions = + [| "html"; "htm"; "txt"; "pdf"; "jpg"; "jpeg"; "png"; "gif" |] + *) + +(* todo + terms_matrix: + ext X lang *) diff --git a/src/mte.ml b/src/mte.ml index 291275e4..74d7cd63 100644 --- a/src/mte.ml +++ b/src/mte.ml @@ -12,8 +12,27 @@ module Assets = struct get Fpath.((Config.privacy_dir / "en" / Config.privacy_etag) + ".html") end -let static data req _server _env = +let static kind req _server _env = let open Vif.Response.Syntax in + let extension = .. in + if not @@ extension is supported then + error mimetype not supported + else + + let base_dir, etag = + let open Config in + match kind with + | `Terms -> terms_dir, terms_etag + | `Privacy -> privacy_dir, privacy_etag + in + + let accepted_lang_l = .. in + + + (* add headers ... *) + + + let* () = Vif.Response.with_string ~compression:`Gzip req data in let field = "content-type" in let* () = Vif.Response.add ~field "html; charset=utf-8" in