Skip to content

Commit a3d8515

Browse files
committed
Update main.go
1 parent df8894d commit a3d8515

File tree

1 file changed

+28
-1
lines changed

1 file changed

+28
-1
lines changed

main.go

+28-1
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,35 @@ package main
22

33
import (
44
"fmt"
5+
"github.com/exlskills/demo-go-webservice/config"
6+
"github.com/exlskills/demo-go-webservice/models"
7+
"github.com/exlskills/demo-go-webservice/routes"
8+
"github.com/gorilla/handlers"
9+
"net/http"
10+
"os"
11+
"time"
512
)
613

14+
var Log = config.Cfg().GetLogger()
15+
var CORSHandler = handlers.CORS(handlers.AllowedMethods([]string{"GET", "POST", "PUT", "DELETE", "OPTIONS"}), handlers.AllowCredentials(), handlers.AllowedHeaders([]string{"x-locale", "x-api-key", "content-type", "access-control-request-headers", "access-control-request-method", "x-csrftoken"}), handlers.AllowedOrigins(config.Cfg().AllowedOrigins))
16+
717
func main() {
8-
fmt.Println("Hello EXLskills!")
18+
Log.Info("Setting up database connection ...")
19+
20+
for {
21+
err := models.Setup()
22+
if err != nil {
23+
Log.WithError(err).Error("Error setting up database connection, retrying ...")
24+
time.Sleep(time.Second * 3)
25+
} else {
26+
break
27+
}
28+
}
29+
30+
Log.Info("Connected to database")
31+
32+
// TODO: Implement graceful stop
33+
Log.Info("Starting HTTP server")
34+
http.ListenAndServe(fmt.Sprintf("%s:%s", config.Cfg().ListenAddress, config.Cfg().ListenPort), CORSHandler(handlers.CombinedLoggingHandler(os.Stdout, routes.CreateRouter())))
35+
Log.Info("Stopped HTTP server")
936
}

0 commit comments

Comments
 (0)