diff options
author | Alban Gruin | 2022-02-05 15:16:18 +0100 |
---|---|---|
committer | Alban Gruin | 2022-02-05 15:18:19 +0100 |
commit | a55229d34abeb85d9adaca615c9905c7b06a81e1 (patch) | |
tree | 9735a5e37101dd699bebc6777d403f50d804f935 /src/server.ml | |
parent | ee3b01bf7027798ba23153aef7f4ccc57f5f7b38 (diff) |
Introduce a new feature to list events without location
This adds a new page listing events without location.
Signed-off-by: Alban Gruin <alban at pa1ch dot fr>
Diffstat (limited to 'src/server.ml')
-rw-r--r-- | src/server.ml | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/server.ml b/src/server.ml index 287a416..efd0f0d 100644 --- a/src/server.ml +++ b/src/server.ml @@ -126,6 +126,17 @@ let get_module_link base_url body = respond_link ~groups base_url Module module_id) bad_request +let list_events_with_empty_location celcat_url body = + get_module_and_groups_from_request body + (fun module_id groups -> + fetch celcat_url module_id Module >>= fun body -> + Course.decode body + |> skip_if (groups = []) (Ics.filter_groups groups) + |> Ics.filter_empty_locations + |> Pages.empty_events + |> respond) + bad_request + let check_ics = Astring.String.is_suffix ~affix:".ics" let serve base_url celcat_url mode stop = @@ -155,7 +166,9 @@ let serve base_url celcat_url mode stop = |> Ics.get_all_groups |> Pages.select module_id |> respond - | (`GET | `POST), ["lnk"], _ | `GET, ["filter"], _ -> + | `POST, ["empty"], [] -> + list_events_with_empty_location celcat_url body + | (`GET | `POST), ["lnk"], _ | `GET, ["filter"], _ | `POST, ["empty"], _ -> bad_request () | `GET, ["ics"; "g" | "m"; file], _ when check_ics file -> bad_request () |