func restGetCompletion(m *model.Model, w http.ResponseWriter, r *http.Request) { var qs = r.URL.Query() var repo = qs.Get("repo") var nodeStr = qs.Get("node") node, err := protocol.NodeIDFromString(nodeStr) if err != nil { http.Error(w, err.Error(), 500) return } res := map[string]float64{ "completion": m.Completion(node, repo), } w.Header().Set("Content-Type", "application/json; charset=utf-8") json.NewEncoder(w).Encode(res) }
func restGetPeerCompletion(m *model.Model, w http.ResponseWriter, r *http.Request) { tot := map[string]float64{} count := map[string]float64{} for _, repo := range cfg.Repositories { for _, node := range repo.NodeIDs() { nodeStr := node.String() if m.ConnectedTo(node) { tot[nodeStr] += m.Completion(node, repo.ID) } else { tot[nodeStr] = 0 } count[nodeStr]++ } } comp := map[string]int{} for node := range tot { comp[node] = int(tot[node] / count[node]) } w.Header().Set("Content-Type", "application/json; charset=utf-8") json.NewEncoder(w).Encode(comp) }