diff options
Diffstat (limited to '')
-rw-r--r-- | main.go | 54 |
1 files changed, 54 insertions, 0 deletions
@@ -0,0 +1,54 @@ +package main + +import ( + "context" + "database/sql" + "flag" + "fmt" + "gosten/model" + "log" + "net" + "net/http" + "strconv" +) + +// flags +var ( + port uint64 + host string +) + +func init() { + flag.StringVar(&host, "h", "localhost", "address to listen on") + flag.Uint64Var(&port, "p", 8080, "port to listen on") +} + +func main() { + flag.Parse() + + db, err := sql.Open(driverName, "test.sqlite") + if err != nil { + log.Fatal(err) + } + + queries := model.New(db) + + helloHandler := func(w http.ResponseWriter, req *http.Request) { + fmt.Fprintln(w, "Hello, world!") + fmt.Fprintf(w, "Running on %s:%d\n", host, port) + + users, err := queries.GetUsers(context.Background()) + if err != nil { + log.Fatal(err) + } + + fmt.Fprintln(w, "\nUSERS") + for _, u := range users { + fmt.Fprintln(w, u.Name) + } + } + http.HandleFunc("/", helloHandler) + + address := net.JoinHostPort(host, strconv.FormatUint(port, 10)) + log.Fatal(http.ListenAndServe(address, nil)) +} |