forked from cryptopay-dev/entice
/
main.go
53 lines (44 loc) · 1.12 KB
/
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
package main
import (
"log"
"os"
"net/http"
"fmt"
"time"
"github.com/go-pg/pg"
"github.com/go-redis/redis"
)
const (
Response = `{"db": "%v", "redis": "%v"}`
)
func main() {
// Database connection
db := pg.Connect(&pg.Options{
Addr: os.Getenv("DATABASE_ADDR"),
User: os.Getenv("DATABASE_USER"),
Password: os.Getenv("DATABASE_PASSWORD"),
Database: os.Getenv("DATABASE_DATABASE"),
})
var dbVersion string
if _, err := db.QueryOne(&dbVersion, "SELECT VERSION()"); err != nil {
log.Fatalf("Error grep database version: %v", err)
}
// Redis connection
re := redis.NewClient(&redis.Options{
Addr: os.Getenv("REDIS_ADDR"),
})
cmd := re.Time()
res, err := cmd.Result()
if err != nil {
log.Fatalf("Error getting time from Redis: %v", err)
}
// Listen and serving using data
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, Response, dbVersion, res.Format(time.RFC3339))
})
log.Printf("Start listening on: %v", os.Getenv("LISTEN"))
// Start listening
if err := http.ListenAndServe(os.Getenv("LISTEN"), nil); err != nil {
log.Fatalf("Error listening: %v", err)
}
}