From 4df6d17739e1fb286e55b8f45f1f9f55538324c3 Mon Sep 17 00:00:00 2001 From: Lewis Dale Date: Fri, 10 May 2024 09:02:02 +0100 Subject: [PATCH] Test a site and store the output --- main.go | 7 +++++++ ping/ping.go | 15 +++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/main.go b/main.go index 1687a45..eead14b 100644 --- a/main.go +++ b/main.go @@ -20,6 +20,13 @@ func main() { 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) { w.Write([]byte("This was a GET request!")) }) diff --git a/ping/ping.go b/ping/ping.go index e63b610..f45a05a 100644 --- a/ping/ping.go +++ b/ping/ping.go @@ -2,6 +2,7 @@ package ping import ( "database/sql" + "net/http" "lewisdale.dev/oopsie/sites" ) @@ -58,3 +59,17 @@ const saveQuery = `INSERT INTO ping (site, status) VALUES (?, ?);` func (p *Ping) Save(db *sql.DB) { db.Exec(saveQuery, p.Site.Url, p.Status) } + +func SendPing(db *sql.DB, site sites.Site) { + p := Ping{ + Site: site, + } + + if _, err := http.Get(site.Url); err != nil { + p.Status = Failure + } else { + p.Status = Success + } + + p.Save(db) +}