cvsimport
[hcoop/zz_old/portal.git] / init.sig
index 360b94e..303e1be 100644 (file)
--- a/init.sig
+++ b/init.sig
@@ -1,5 +1,7 @@
 signature INIT = sig
     structure C : SQL_CLIENT
+    val nullableFromSql : (C.value -> 'a) -> C.value -> 'a option
+    val nullableToSql : ('a -> string) -> 'a option -> string
 
     val scratchDir : string
     val urlPrefix : string
@@ -11,7 +13,7 @@ signature INIT = sig
     val emailSuffix : string
 
     type user = {id : int, name : string, rname : string, bal : int, joined : C.timestamp,
-                app : int}
+                app : int, shares : int, paypal : string option, checkout : string option }
 
     val rowError : string * C.value list -> 'a
 
@@ -30,10 +32,12 @@ signature INIT = sig
 
     val lookupUser : int -> user
     val listUsers : unit -> user list
-    val addUser : string * string * int * int -> int
-    (* Pass name, real name, and balance ID *)
+    val addUser : string * string * int * int * int -> int
+    (* Pass name, real name, balance ID, and share count *)
     val modUser : user -> unit
     val deleteUser : int -> string
+    val byPledge : unit -> user list
+    val unmigratedUsers : unit -> user list
 
     val validUsername : string -> bool
     val userNameToId : string -> int option
@@ -47,4 +51,22 @@ signature INIT = sig
     val dateString : unit -> string
 
     val grandfatherUsers : unit -> unit
+
+    type node = {id : int, name : string, descr : string, debian : string}
+
+    val listNodes : unit -> node list
+    val nodeName : int -> string
+    val nodeDebian : int -> string
+
+    val explain : exn -> string
+    val tokens : unit -> string
+    val tokensForked : unit -> unit
+
+    val usersDiff : string list * string list ->
+                   {onlyInFirst : string list, onlyInSecond : string list}
+    val listUsernames : unit -> string list
+    val usersInAfs : unit -> string list
+
+    val searchPaypal : string -> user list
+    val searchCheckout : string -> user list
 end