oopsie/main.go

50 lines
1.0 KiB
Go

package main
import (
"encoding/json"
"net/http"
_ "github.com/mattn/go-sqlite3"
"lewisdale.dev/oopsie/data"
"lewisdale.dev/oopsie/ping"
"lewisdale.dev/oopsie/sites"
)
func main() {
db := data.Connect("test.sqlite3")
db.Exec("PRAGMA foreign_keys = ON;")
sites.CreateTable(db)
ping.CreateTable(db)
site := sites.Site{Name: "Lewisdale.dev", Url: "https://lewisdale.dev"}
site.Save(db)
ping.SendPing(db, site)
failureSite := sites.Site{Name: "Example", Url: "https://notreal.tld"}
failureSite.Save(db)
ping.SendPing(db, failureSite)
http.HandleFunc("GET /", func(w http.ResponseWriter, r *http.Request) {
pings := ping.ListGroupedBySite(db)
if output, err := json.Marshal(pings); err != nil {
w.Write([]byte(err.Error()))
w.WriteHeader(http.StatusInternalServerError)
return
} else {
w.Header().Set("Content-Type", "application/json")
w.Write(output)
}
})
http.HandleFunc("POST /", func(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("This was a POST request!"))
})
http.ListenAndServe(":8000", nil)
}