summaryrefslogtreecommitdiffstats
path: root/src/static_api.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/static_api.rs')
-rw-r--r--src/static_api.rs28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/static_api.rs b/src/static_api.rs
index 24bd989..3348d74 100644
--- a/src/static_api.rs
+++ b/src/static_api.rs
@@ -25,6 +25,7 @@ impl<'a> Generator<'a> {
self.generate_teams()?;
self.generate_lists()?;
self.generate_permissions()?;
+ self.generate_rfcbot()?;
Ok(())
}
@@ -112,6 +113,33 @@ impl<'a> Generator<'a> {
Ok(())
}
+ fn generate_rfcbot(&self) -> Result<(), Error> {
+ let mut teams = IndexMap::new();
+
+ for team in self.data.teams() {
+ if let Some(rfcbot) = team.rfcbot_data() {
+ let mut members = team
+ .members(&self.data)?
+ .into_iter()
+ .map(|s| s.to_string())
+ .collect::<Vec<_>>();
+ members.sort();
+ teams.insert(
+ rfcbot.label.clone(),
+ v1::RfcbotTeam {
+ name: rfcbot.name.clone(),
+ ping: rfcbot.ping.clone(),
+ members,
+ },
+ );
+ }
+ }
+
+ teams.sort_keys();
+ self.add("v1/rfcbot.json", &v1::Rfcbot { teams })?;
+ Ok(())
+ }
+
fn add<T: serde::Serialize>(&self, path: &str, obj: &T) -> Result<(), Error> {
info!("writing API object {}...", path);
let dest = self.dest.join(path);