Files
skeps/backend/main.go
T
root 0d5fb99347 pg
2026-09-13 16:16:42 +02:00

47 lines
1.2 KiB
Go

package main
import (
"log"
"net/http"
"os"
)
func main() {
databaseURL := os.Getenv("DATABASE_URL")
if databaseURL == "" {
databaseURL = "sqlite://./skeps.db"
}
rawDB, db, err := openDB(databaseURL)
if err != nil {
log.Fatalf("database: %v", err)
}
defer rawDB.Close()
a := &api{db: db, hub: newHub()}
mux := http.NewServeMux()
mux.HandleFunc("POST /api/lists", a.createList)
mux.HandleFunc("GET /api/lists/{listId}", a.getList)
mux.HandleFunc("GET /api/lists/{listId}/ws", a.listSocket)
mux.HandleFunc("GET /api/lists/{listId}/sublists", a.listSublists)
mux.HandleFunc("POST /api/lists/{listId}/sublists", a.createSublist)
mux.HandleFunc("GET /api/lists/{listId}/items", a.listItems)
mux.HandleFunc("POST /api/lists/{listId}/items", a.createItem)
mux.HandleFunc("PATCH /api/lists/{listId}/items/{id}", a.updateItem)
mux.HandleFunc("DELETE /api/lists/{listId}/items/{id}", a.deleteItem)
mux.HandleFunc("GET /healthz", func(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(http.StatusOK)
})
port := os.Getenv("PORT")
if port == "" {
port = "8080"
}
log.Printf("skeps backend listening on :%s", port)
if err := http.ListenAndServe(":"+port, mux); err != nil {
log.Fatal(err)
}
}