package com.intrbiz.bergamot.ui.router;
import static com.intrbiz.bergamot.ui.util.Sorter.orderGroupsByStatus;
import static com.intrbiz.bergamot.ui.util.Sorter.orderLocationsByStatus;
import java.util.stream.Collectors;
import com.intrbiz.balsa.engine.route.Router;
import com.intrbiz.balsa.metadata.WithDataAdapter;
import com.intrbiz.bergamot.data.BergamotDB;
import com.intrbiz.bergamot.model.Site;
import com.intrbiz.bergamot.ui.BergamotApp;
import com.intrbiz.metadata.Any;
import com.intrbiz.metadata.Prefix;
import com.intrbiz.metadata.RequireValidPrincipal;
import com.intrbiz.metadata.Template;
import com.intrbiz.bergamot.metadata.GetBergamotSite;
@Prefix("/")
@Template("layout/main")
@RequireValidPrincipal()
public class DashboardRouter extends Router<BergamotApp>
{
@Any("/")
@WithDataAdapter(BergamotDB.class)
public void index(BergamotDB db, @GetBergamotSite() Site site)
{
model("alerts", db.listAlerts(site.getId()).stream().filter((a) -> permission("read", a.getCheckId())).collect(Collectors.toList()));
model("groups", orderGroupsByStatus(permission("read", db.getRootGroups(site.getId()))));
model("locations", orderLocationsByStatus(permission("read", db.getRootLocations(site.getId()))));
encode("index");
}
}