func indexHandler(w http.ResponseWriter, req *http.Request) { reqParams, err := util.NewReqParams(req) if err != nil { log.Printf("ERROR: failed to parse request params - %s", err.Error()) http.Error(w, "INVALID_REQUEST", 500) return } var topics []string if len(lookupdHTTPAddrs) != 0 { topics, _ = lookupd.GetLookupdTopics(lookupdHTTPAddrs) } else { topics, _ = lookupd.GetNSQDTopics(nsqdHTTPAddrs) } p := struct { Title string GraphOptions *GraphOptions Topics Topics Version string }{ Title: "NSQ", GraphOptions: NewGraphOptions(w, req, reqParams), Topics: TopicsFromStrings(topics), Version: util.BINARY_VERSION, } err = templates.ExecuteTemplate(w, "index.html", p) if err != nil { log.Printf("Template Error %s", err.Error()) http.Error(w, "Template Error", 500) } }
func lookupHandler(w http.ResponseWriter, req *http.Request) { reqParams, err := util.NewReqParams(req) if err != nil { log.Printf("ERROR: failed to parse request params - %s", err.Error()) http.Error(w, "INVALID_REQUEST", 500) return } channels := make(map[string][]string) allTopics, _ := lookupd.GetLookupdTopics(lookupdHTTPAddrs) for _, topicName := range allTopics { var producers []string producers, _ = lookupd.GetLookupdTopicProducers(topicName, lookupdHTTPAddrs) if len(producers) == 0 { topicChannels, _ := lookupd.GetLookupdTopicChannels(topicName, lookupdHTTPAddrs) channels[topicName] = topicChannels } } p := struct { Title string GraphOptions *GraphOptions TopicMap map[string][]string Lookupd []string Version string }{ Title: "NSQ Lookup", GraphOptions: NewGraphOptions(w, req, reqParams), TopicMap: channels, Lookupd: lookupdHTTPAddrs, Version: util.BINARY_VERSION, } err = templates.ExecuteTemplate(w, "lookup.html", p) if err != nil { log.Printf("Template Error %s", err.Error()) http.Error(w, "Template Error", 500) } }