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