Fixed to match ChriS's API changes to mod_caml.
[cocanwiki.git] / scripts / admin / create_host.ml
index 239e9ca..5ba2ea0 100644 (file)
@@ -1,7 +1,7 @@
 (* COCANWIKI - a wiki written in Objective CAML.
  * Written by Richard W.M. Jones <rich@merjis.com>.
  * Copyright (C) 2004 Merjis Ltd.
- * $Id: create_host.ml,v 1.3 2004/09/09 12:21:22 rich Exp $
+ * $Id: create_host.ml,v 1.9 2005/03/31 14:24:04 rich Exp $
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -29,6 +29,7 @@ open Cgi
 open Printf
 
 open Cocanwiki_strings
+open Cocanwiki_create_host
 
 let split_re = Pcre.regexp "[\\s,;]+"
 
@@ -62,35 +63,22 @@ let run r =
     let hostnames = List.map check_hostname hostnames in
     let hostnames = List.filter ((<>) "") hostnames in
 
-    (* Update the database. *)
-    let sth = dbh#prepare_cached
-               "set constraints \"hosts_hostname_cn\" deferred" in
-    sth#execute [];
-    let sth = dbh#prepare_cached "insert into hosts (canonical_hostname)
-                                  values (?)" in
-    sth#execute [`String canonical_hostname];
+    let template =
+      if q#param_true "template" then int_of_string (q#param "template")
+      else 0 in
 
-    let hostid = sth#serial "hosts_id_seq" in
-
-    let sth = dbh#prepare_cached "insert into hostnames (hostid, name)
-                                  values (?, ?)" in
-    sth#execute [`Int hostid; `String canonical_hostname];
-    List.iter (fun name ->
-                sth#execute [`Int hostid; `String name]) hostnames;
-
-    let sth = dbh#prepare_cached "insert into pages (hostid, url, title,
-                                    description) values (?, 'index', ?, ?)" in
-    sth#execute [`Int hostid; `String title; `String title];
+    let hostid = create_host dbh canonical_hostname hostnames template title
+                  "Administrator" "123456" true None in
 
     (* Commit to the database. *)
     dbh#commit ();
 
     (* Print confirmation page. *)
     let buttons = [
-      { StdPages.label = "OK";
-       StdPages.link = "/_bin/admin/host.cmo";
-       StdPages.method_ = None;
-       StdPages.params = [ "hostid", string_of_int hostid ] }
+      { Template.StdPages.label = "OK";
+       Template.StdPages.link = "/_bin/admin/host.cmo";
+       Template.StdPages.method_ = None;
+       Template.StdPages.params = [ "hostid", string_of_int hostid ] }
     ] in
 
     Cocanwiki_ok.ok ~title:"Wiki created" ~buttons