summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/static_api.rs21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/static_api.rs b/src/static_api.rs
index 1beea23..164cfbe 100644
--- a/src/static_api.rs
+++ b/src/static_api.rs
@@ -22,6 +22,7 @@ impl<'a> Generator<'a> {
pub(crate) fn generate(&self) -> Result<(), Error> {
self.generate_teams()?;
+ self.generate_lists()?;
Ok(())
}
@@ -78,6 +79,26 @@ impl<'a> Generator<'a> {
Ok(())
}
+ fn generate_lists(&self) -> Result<(), Error> {
+ let mut lists = IndexMap::new();
+
+ for list in self.data.lists()?.values() {
+ let mut members = list.emails().to_vec();
+ members.sort();
+ lists.insert(list.address().to_string(), v1::List {
+ address: list.address().to_string(),
+ members,
+ });
+ }
+
+ lists.sort_keys();
+ self.add(
+ "v1/lists.json",
+ &v1::Lists { lists },
+ )?;
+ Ok(())
+ }
+
fn add<T: serde::Serialize>(&self, path: &str, obj: &T) -> Result<(), Error> {
info!("writing API object {}...", path);
let dest = self.dest.join(path);