8d347a33 |
1 | signature INIT = sig |
2 | structure C : SQL_CLIENT |
3 | |
31b85852 |
4 | val scratchDir : string |
2eae496b |
5 | val urlPrefix : string |
453d7579 |
6 | val boardEmail : string |
2eae496b |
7 | |
8d347a33 |
8 | exception Access of string |
5146e435 |
9 | exception NeedTos |
8d347a33 |
10 | |
646dca75 |
11 | val emailSuffix : string |
12 | |
5146e435 |
13 | type user = {id : int, name : string, rname : string, bal : int, joined : C.timestamp, |
892e3ea1 |
14 | app : int, shares : int} |
8d347a33 |
15 | |
369e1577 |
16 | val rowError : string * C.value list -> 'a |
17 | |
18 | val mkUserRow : C.value list -> user |
8d347a33 |
19 | |
9d313c5f |
20 | (* Direct access to database connections *) |
21 | val conn : unit -> C.conn |
22 | |
8d347a33 |
23 | (* Open or close a session, wrapped in a transaction *) |
24 | val init : unit -> unit |
25 | val done : unit -> unit |
26 | |
369e1577 |
27 | val nextSeq : C.conn * string -> int |
8d347a33 |
28 | |
29 | (* Fun with users *) |
30 | |
31 | val lookupUser : int -> user |
32 | val listUsers : unit -> user list |
892e3ea1 |
33 | val addUser : string * string * int * int * int -> int |
34 | (* Pass name, real name, balance ID, and share count *) |
8d347a33 |
35 | val modUser : user -> unit |
36 | val deleteUser : int -> string |
892e3ea1 |
37 | val byPledge : unit -> user list |
8d347a33 |
38 | |
39 | val validUsername : string -> bool |
40 | val userNameToId : string -> int option |
41 | |
42 | val getDb : unit -> C.conn |
43 | |
44 | val getUser : unit -> user |
45 | val getUserId : unit -> int |
46 | val getUserName : unit -> string |
4b8df0b1 |
47 | |
48 | val dateString : unit -> string |
5146e435 |
49 | |
50 | val grandfatherUsers : unit -> unit |
8023de7b |
51 | |
52 | type node = {id : int, name : string, descr : string, debian : string} |
53 | |
54 | val listNodes : unit -> node list |
55 | val nodeName : int -> string |
56 | val nodeDebian : int -> string |
646dca75 |
57 | end |