cvsimport
[hcoop/zz_old/portal.git] / init.sig
CommitLineData
8d347a33 1signature INIT = sig
2 structure C : SQL_CLIENT
20acb925 3 val nullableFromSql : (C.value -> 'a) -> C.value -> 'a option
4 val nullableToSql : ('a -> string) -> 'a option -> string
8d347a33 5
31b85852 6 val scratchDir : string
2eae496b 7 val urlPrefix : string
453d7579 8 val boardEmail : string
2eae496b 9
8d347a33 10 exception Access of string
5146e435 11 exception NeedTos
8d347a33 12
646dca75 13 val emailSuffix : string
14
5146e435 15 type user = {id : int, name : string, rname : string, bal : int, joined : C.timestamp,
20acb925 16 app : int, shares : int, paypal : string option, checkout : string option }
8d347a33 17
369e1577 18 val rowError : string * C.value list -> 'a
19
20 val mkUserRow : C.value list -> user
8d347a33 21
9d313c5f 22 (* Direct access to database connections *)
23 val conn : unit -> C.conn
24
8d347a33 25 (* Open or close a session, wrapped in a transaction *)
26 val init : unit -> unit
27 val done : unit -> unit
28
369e1577 29 val nextSeq : C.conn * string -> int
8d347a33 30
31 (* Fun with users *)
32
33 val lookupUser : int -> user
34 val listUsers : unit -> user list
892e3ea1 35 val addUser : string * string * int * int * int -> int
36 (* Pass name, real name, balance ID, and share count *)
8d347a33 37 val modUser : user -> unit
38 val deleteUser : int -> string
892e3ea1 39 val byPledge : unit -> user list
da3f3cbc 40 val unmigratedUsers : unit -> user list
8d347a33 41
42 val validUsername : string -> bool
43 val userNameToId : string -> int option
44
45 val getDb : unit -> C.conn
46
47 val getUser : unit -> user
48 val getUserId : unit -> int
49 val getUserName : unit -> string
4b8df0b1 50
51 val dateString : unit -> string
5146e435 52
53 val grandfatherUsers : unit -> unit
8023de7b 54
55 type node = {id : int, name : string, descr : string, debian : string}
56
57 val listNodes : unit -> node list
58 val nodeName : int -> string
59 val nodeDebian : int -> string
1ec55b98 60
61 val explain : exn -> string
62 val tokens : unit -> string
63 val tokensForked : unit -> unit
9fe97917 64
65 val usersDiff : string list * string list ->
66 {onlyInFirst : string list, onlyInSecond : string list}
67 val listUsernames : unit -> string list
68 val usersInAfs : unit -> string list
20acb925 69
70 val searchPaypal : string -> user list
71 val searchCheckout : string -> user list
646dca75 72end