Listings

Production

LRE - Detroit District

LRH - Huntington District

MVK - Vicksburg District

MVP - St. Paul District

NAB - Baltimore District

NAO - Norfolk District

NAP - Philadelphia District

NWW - Walla Walla District



Testing

Detroit District

Huntington District

Vicksburg District

St. Paul District

Baltimore District

Norfolk District

Philadelphia District

Walla Walla District

Mobile District

Tulsa District

Development


Chicago District

Detroit District

Huntington District

Louisville District

Nashville District

Vicksburg District

Memphis District

New Orleans District

St. Paul District

Rock Island District

St. Louis District

Baltimore District

New England District

Norfolk District

Philadelphia District

Portland District

Seattle District

Walla Walla District

Jacksonville District

Mobile District

Wilmington District

Albuquerque District

Sacramento District

Los Angeles District

Fort Worth District

Galveston District

Little Rock District

Tulsa District







These were pulled using the following JavaScript ran in the browser console:

Then paste this output into a "markup" block!


JavaScript to Determine Offices
let envSites = [
    {env: "Production", domain: "https://water.usace.army.mil/office"}, 
    {env: "Test", domain: "https://water-test.cwbi.us/office"}, 
    {env: "Development", domain: "https://water.dev.cwbi.us/office"}
]
envSites.forEach(site=> {
    fetch("https://cwms-data.usace.army.mil/cwms-data/offices")
  .then(r => r.json())
  .then(offices => {
    const districts = offices.filter(o => o.type === "DIS");

    return Promise.allSettled(
      districts.map(d =>
        fetch(`${site.domain}/${d.name.toLowerCase()}`)
          .then(resp => {
            if (resp.ok) return `[${d.name} - ${d["long-name"]}](${site.domain}/${d.name})`; // return long-name if request works
            throw new Error("Not found");
          })
      )
    );
  })
  .then(results => {
    const liveSites = results
      .filter(r => r.status === "fulfilled")
      .map(r => r.value);

    console.log(site.env + "\n" + liveSites.join("\n\n"));
  })
  .catch(err => console.error(err));
})