main.go

 1package main
 2
 3import (
 4	"encoding/json"
 5	"log"
 6	"net/http"
 7
 8	"github.com/charmbracelet/fur/internal/providers"
 9)
10
11func providersHandler(w http.ResponseWriter, r *http.Request) {
12	if r.Method != http.MethodGet {
13		http.Error(w, "Method not allowed", http.StatusMethodNotAllowed)
14		return
15	}
16
17	allProviders := providers.GetAll()
18
19	w.Header().Set("Content-Type", "application/json")
20	if err := json.NewEncoder(w).Encode(allProviders); err != nil {
21		http.Error(w, "Internal server error", http.StatusInternalServerError)
22		return
23	}
24}
25
26func main() {
27	http.HandleFunc("/providers", providersHandler)
28	http.HandleFunc("/healthz", func(w http.ResponseWriter, r *http.Request) {
29		_, _ = w.Write([]byte("OK"))
30		w.WriteHeader(http.StatusOK)
31	})
32
33	log.Println("Server starting on :8080")
34	if err := http.ListenAndServe(":8080", nil); err != nil {
35		log.Fatal("Server failed to start:", err)
36	}
37}