X-Git-Url: http://git.hcoop.net/bpt/portal.git/blobdiff_plain/93f77ca7c0fbfefe5eaf130c360cd1d112f40d52..23bfc8776ac637a955c1f781ff20498eaf62ef5b:/init.sig diff --git a/init.sig b/init.sig index 9af4bc6..303e1be 100644 --- a/init.sig +++ b/init.sig @@ -1,6 +1,9 @@ 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 val boardEmail : string @@ -10,12 +13,15 @@ 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 val mkUserRow : C.value list -> user + (* Direct access to database connections *) + val conn : unit -> C.conn + (* Open or close a session, wrapped in a transaction *) val init : unit -> unit val done : unit -> unit @@ -26,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 @@ -43,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