open Printf open Json_io open Json_type module Couch = Couch.Simple let server = "http://localhost:5984/" let db = "coucho_test" let _ = let v = Couch.version server in match v with | None -> failwith "Can't connect to server" | Some v -> printf "Running on CouchDB %s.\n" v let _ = if not (Couch.exists server db) then if Couch.create server db then print_endline "Database coucho_test created." else print_endline "Database coucho_test already exists." else failwith "The database already exists" try let _ = let infos = Couch.infos server db in infos (* match infos with *) (* | None -> print_endline "Database not found" *) (* | Some infos -> printf "Database %s contains %i documents, using %i bytes.\n" infos.Couch.db_name infos.Couch.doc_count infos.Couch.disk_size *) in let _ = let id, rev = Couch.insert server db (Object [ "type", String "test"; "name", String "toto"; ]) in let o = Couch.get server db id in print_endline (string_of_json o) in let _ = Couch.insert server db (Object [ "type", String "test"; "name", String "tata"; ]) in let _ = Couch.design server db "comments" [ Couch.create_view "names" "function (doc) { if (doc.type && doc.type == 'test') {emit(null, doc.name)} }"; ] in let _ = let count, l = Couch.view server db "comments" "names" in print_int count; print_endline (string_of_json (Array l)) in let _ = if Couch.delete server db then print_endline "Database coucho_test deleted" else print_endline "Can't delete database coucho_test" in () with | e -> (if Couch.delete server db then print_endline "Database coucho_test deleted" else print_endline "Can't delete database coucho_test"); raise e