Commit | Line | Data |
---|---|---|
208e2cbc AC |
1 | signature INIT = sig |
2 | structure C : SQL_CLIENT | |
d5f8418b AC |
3 | val nullableFromSql : (C.value -> 'a) -> C.value -> 'a option |
4 | val nullableToSql : ('a -> string) -> 'a option -> string | |
208e2cbc | 5 | |
e84acecc | 6 | val scratchDir : string |
edeb626e | 7 | val urlPrefix : string |
6f91863c | 8 | val boardEmail : string |
edeb626e | 9 | |
208e2cbc | 10 | exception Access of string |
f3f3ad24 | 11 | exception NeedTos |
208e2cbc | 12 | |
93f77ca7 AC |
13 | val emailSuffix : string |
14 | ||
f3f3ad24 | 15 | type user = {id : int, name : string, rname : string, bal : int, joined : C.timestamp, |
d5f8418b | 16 | app : int, shares : int, paypal : string option, checkout : string option } |
208e2cbc | 17 | |
ee587f7f AC |
18 | val rowError : string * C.value list -> 'a |
19 | ||
20 | val mkUserRow : C.value list -> user | |
208e2cbc | 21 | |
dda99898 AC |
22 | (* Direct access to database connections *) |
23 | val conn : unit -> C.conn | |
24 | ||
208e2cbc AC |
25 | (* Open or close a session, wrapped in a transaction *) |
26 | val init : unit -> unit | |
27 | val done : unit -> unit | |
28 | ||
ee587f7f | 29 | val nextSeq : C.conn * string -> int |
208e2cbc AC |
30 | |
31 | (* Fun with users *) | |
32 | ||
33 | val lookupUser : int -> user | |
34 | val listUsers : unit -> user list | |
aaa50197 AC |
35 | val addUser : string * string * int * int * int -> int |
36 | (* Pass name, real name, balance ID, and share count *) | |
208e2cbc AC |
37 | val modUser : user -> unit |
38 | val deleteUser : int -> string | |
aaa50197 | 39 | val byPledge : unit -> user list |
60754922 | 40 | val unmigratedUsers : unit -> user list |
208e2cbc AC |
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 | |
98a5f121 AC |
50 | |
51 | val dateString : unit -> string | |
f3f3ad24 AC |
52 | |
53 | val grandfatherUsers : unit -> unit | |
18eeb749 AC |
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 | |
30b8ceb4 AC |
60 | |
61 | val explain : exn -> string | |
62 | val tokens : unit -> string | |
63 | val tokensForked : unit -> unit | |
59eb5381 AC |
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 | |
d5f8418b AC |
69 | |
70 | val searchPaypal : string -> user list | |
71 | val searchCheckout : string -> user list | |
93f77ca7 | 72 | end |