X-Git-Url: https://git.hcoop.net/hcoop/zz_old/portal.git/blobdiff_plain/8d347a3306ce7cc6e744183f0d4229f09d3f7101..7a02706f285799a9f20c8d085906dceec1facebf:/init.sig diff --git a/init.sig b/init.sig index 4746bf2..303e1be 100644 --- a/init.sig +++ b/init.sig @@ -1,26 +1,43 @@ 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 exception Access of string + exception NeedTos + + val emailSuffix : string + + type user = {id : int, name : string, rname : string, bal : int, joined : C.timestamp, + app : int, shares : int, paypal : string option, checkout : string option } - type user = {id : int, name : string, rname : string, bal : int, joined : C.timestamp} + val rowError : string * C.value list -> 'a - val mkUserRow : string list -> user + 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 - val nextSeq : C.conn * string -> string + val nextSeq : C.conn * string -> int (* Fun with users *) val lookupUser : int -> user val listUsers : unit -> user list - val addUser : string * string * 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 @@ -30,4 +47,26 @@ signature INIT = sig val getUser : unit -> user val getUserId : unit -> int val getUserName : unit -> string -end \ No newline at end of file + + 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