-structure Apt = Request(struct
- val table = "Apt"
- val adminGroup = "server"
- fun subject _ = "Apt package installation request"
- val template = "apt"
- val descr = "packages"
-
- fun body (mail, pkgs) =
- let
- val pkgs = String.tokens Char.isSpace pkgs
- val infos = map (valOf o AptQuery.query) pkgs
-
- fun rightJustify (n, s) =
- let
- fun pad n =
- if n <= 0 then
- ()
- else
- (Mail.mwrite (mail, " ");
- pad (n-1))
- in
- pad (n - size s);
- Mail.mwrite (mail, s)
- end
- in
- app (fn info =>
- (rightJustify (10, #name info);
- Mail.mwrite (mail, " ");
- Mail.mwrite (mail, #descr info);
- Mail.mwrite (mail, "\n"))) infos
- end
- end)
+structure Apt = RequestH(struct
+ val table = "Apt"
+ val adminGroup = "server"
+ fun subject _ = "Apt package installation request"
+ val template = "apt"
+ val descr = "packages"
+
+ fun body {node, mail, data = pkgs} =
+ let
+ val pkgs = String.tokens Char.isSpace pkgs
+ val infos = map (valOf o (fn x => AptQuery.query {node = node, pkg = x})) pkgs
+
+ fun rightJustify (n, s) =
+ let
+ fun pad n =
+ if n <= 0 then
+ ()
+ else
+ (Mail.mwrite (mail, " ");
+ pad (n-1))
+ in
+ pad (n - size s);
+ Mail.mwrite (mail, s)
+ end
+ in
+ app (fn info =>
+ (rightJustify (10, #name info);
+ Mail.mwrite (mail, " ");
+ Mail.mwrite (mail, #descr info);
+ Mail.mwrite (mail, "\n"))) infos
+ end
+ end)