From fd7a60f34478683ed1f0783d91b62749b868fb3a Mon Sep 17 00:00:00 2001 From: RobViren Date: Sun, 7 Nov 2021 21:02:29 -0600 Subject: [PATCH] Init --- go.mod | 12 +++++++++++ go.sum | 21 +++++++++++++++++++ main.go | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 97 insertions(+) create mode 100644 go.mod create mode 100644 go.sum create mode 100644 main.go diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..c674c3e --- /dev/null +++ b/go.mod @@ -0,0 +1,12 @@ +module rodbiren.ddns.net/git/robviren/milkwatch-server + +go 1.17 + +require ( + github.com/gorilla/mux v1.8.0 // indirect + github.com/json-iterator/go v1.1.10 // indirect + github.com/mailgun/mailgun-go/v4 v4.5.3 // indirect + github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421 // indirect + github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742 // indirect + github.com/pkg/errors v0.8.1 // indirect +) diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..e7c2c24 --- /dev/null +++ b/go.sum @@ -0,0 +1,21 @@ +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/facebookgo/ensure v0.0.0-20160127193407-b4ab57deab51/go.mod h1:Yg+htXGokKKdzcwhuNDwVvN+uBxDGXJ7G/VN1d8fa64= +github.com/facebookgo/stack v0.0.0-20160209184415-751773369052/go.mod h1:UbMTZqLaRiH3MsBH8va0n7s1pQYcu3uTb8G4tygF4Zg= +github.com/facebookgo/subset v0.0.0-20150612182917-8dac2c3c4870/go.mod h1:5tD+neXqOorC30/tWg0LCSkrqj/AR6gu8yY8/fpw1q0= +github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI= +github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= +github.com/json-iterator/go v1.1.10 h1:Kz6Cvnvv2wGdaG/V8yMvfkmNiXq9Ya2KUv4rouJJr68= +github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/mailgun/mailgun-go/v4 v4.5.3 h1:Cc4IRTYZVSdDRD7H/wBJRYAwM9DBuFDsbBtsSwqTjCM= +github.com/mailgun/mailgun-go/v4 v4.5.3/go.mod h1:FJlF9rI5cQT+mrwujtJjPMbIVy3Ebor9bKTVsJ0QU40= +github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421 h1:ZqeYNhU3OHLH3mGKHDcjJRFFRrJa6eAM5H+CtDdOsPc= +github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742 h1:Esafd1046DLDQ0W1YjYsBW+p8U2u7vzgW2SQVmlNazg= +github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= diff --git a/main.go b/main.go new file mode 100644 index 0000000..fc8d03a --- /dev/null +++ b/main.go @@ -0,0 +1,64 @@ +package main + +import ( + "context" + "fmt" + "log" + "net/http" + "time" + + "github.com/mailgun/mailgun-go/v4" +) + +const yourDomain string = "sandbox403bedf0d09d4e539131fabf0ab7c11f.mailgun.org" // e.g. mg.yourcompany.com +const privateAPIKey string = "key-2b58bc1193c549df83d8d5ed54e1c982" + +func main() { + for { + log.Println("Checking Fridge") + if !endPointAlive() { + log.Println("He Dead") + sendMail() + } else { + log.Println("He Alive") + } + time.Sleep(20 * time.Second) + } +} + +func endPointAlive() bool { + + res, err := http.Get("http://localhost:2122/heartbeat") + if err != nil { + log.Println(err) + return false + } + + if res.StatusCode != 200 { + log.Println("Status Code ", res.StatusCode) + return false + } else { + return true + } +} + +func sendMail() { + mg := mailgun.NewMailgun(yourDomain, privateAPIKey) + + sender := "robviren@gmail.com" + subject := "Fridge Lost Power!" + body := "Make Rob go fix it!" + recipient := "rcviren@gmail.com" + + message := mg.NewMessage(sender, subject, body, recipient) + + ctx, cancel := context.WithTimeout(context.Background(), time.Second*10) + defer cancel() + + resp, id, err := mg.Send(ctx, message) + + if err != nil { + log.Fatal(err) + } + fmt.Printf("ID: %s Resp: %s\n", id, resp) +}