8d347a33 |
1 | signature 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 |
72 | end |