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
29	log.Println("Server starting on :8080")
30	if err := http.ListenAndServe(":8080", nil); err != nil {
31		log.Fatal("Server failed to start:", err)
32	}
33}
34