@@ -17,28 +17,6 @@ let sync_dir = ref (Filename.concat (Sys.getcwd ()) "sync")
1717
1818let data_dir = ref (Filename. concat ! sync_dir " data" )
1919
20- module Json_codec = struct
21- let decode enc s =
22- (match s with
23- | "" -> `O []
24- | s -> Ezjsonm. from_string s)
25- |> J. destruct enc
26-
27- let encode ?minify enc x =
28- match J. construct enc x with
29- | `A _ | `O _ as json -> Ezjsonm. to_string ?minify json
30- | `Null -> " "
31- | _ -> assert false
32- end
33- let get_from_file enc p =
34- Lwt_io. (with_file ~mode: Input p read) > |=
35- Json_codec. decode enc
36-
37- let write_to_file enc s p =
38- let open Lwt_io in
39- let s = Json_codec. encode enc s in
40- with_file ~mode: output p @@ fun oc -> write oc s
41-
4220let sanitise_path prefix subpath =
4321 let rec resolve acc = function
4422 | [] -> List. rev acc
@@ -54,7 +32,7 @@ let sanitise_path prefix subpath =
5432
5533let read_static_file path enc =
5634 let path = String. split_on_char '/' path in
57- get_from_file enc (sanitise_path ! static_dir path)
35+ Learnocaml_api. get_from_file enc (sanitise_path ! static_dir path)
5836
5937let with_git_register =
6038 let dir_mutex = Lwt_utils. gen_mutex_table () in
@@ -201,7 +179,7 @@ module Exercise = struct
201179 let tbl = lazy (
202180 let tbl = Hashtbl. create 223 in
203181 Lwt. catch (fun () ->
204- get_from_file (J. list enc) (store_file () ) > |= fun l ->
182+ Learnocaml_api. get_from_file (J. list enc) (store_file () )> |= fun l ->
205183 List. iter (fun st -> Hashtbl. add tbl st.id st) l;
206184 tbl)
207185 @@ function
@@ -217,7 +195,7 @@ module Exercise = struct
217195 let save () =
218196 Lazy. force tbl >> = fun tbl ->
219197 let l = Hashtbl. fold (fun _ s acc -> s::acc) tbl [] in
220- let s = Json_codec. encode (J. list enc) l in
198+ let s = Learnocaml_api. Json_codec. encode (J. list enc) l in
221199 write (store_file () ) s
222200
223201 let get id =
@@ -472,7 +450,7 @@ module Save = struct
472450
473451 let get token =
474452 Token. find_save token >> = function
475- | Some save -> get_from_file (J. option enc) save
453+ | Some save -> Learnocaml_api. get_from_file (J. option enc) save
476454 | None -> Lwt. return_none
477455
478456 let set token save =
@@ -503,7 +481,7 @@ module Save = struct
503481 in
504482 Lwt. catch (fun () ->
505483 write ~no_create: (Token. is_teacher token) ~extra file
506- (Json_codec. encode ~minify: false enc save))
484+ (Learnocaml_api. Json_codec. encode ~minify: false enc save))
507485 (function
508486 | Not_found -> Lwt. fail_with " Unregistered teacher token"
509487 | e -> Lwt. fail e)
@@ -557,7 +535,7 @@ module Student = struct
557535
558536 let load () =
559537 Lwt. catch
560- (fun () -> get_from_file store_enc (store_file () ))
538+ (fun () -> Learnocaml_api. get_from_file store_enc (store_file () ))
561539 (function
562540 | Unix. Unix_error (Unix. ENOENT, _ , _ ) -> Lwt. return Token.Map. empty
563541 | e -> Lwt. fail e)
@@ -566,7 +544,7 @@ module Student = struct
566544
567545 let save () =
568546 Lazy. force map >> = fun map ->
569- let s = Json_codec. encode store_enc ! map in
547+ let s = Learnocaml_api. Json_codec. encode store_enc ! map in
570548 write (store_file () ) s
571549
572550 let get_student map token =
0 commit comments