in inventory-service/postgress/main.go [45:88]
func main() {
log.Print("tarting server...")
dbUser := os.Getenv("DB_USER")
dbPassword := os.Getenv("DB_PASSWORD")
dbHost := os.Getenv("DB_HOST")
dbName := os.Getenv("DB_NAME")
log.Print("Connecting to DB")
var err error
db, err = gorm.Open(postgres.New(postgres.Config{
DSN: fmt.Sprintf("host=%s user=%s password=%s dbname=%s", dbHost, dbUser, dbPassword, dbName),
}))
if err != nil {
log.Fatal(err)
}
log.Print("Database Connected, Migrating Schema(s)")
// In production you probably want this in your build pipeline. Not on app startup
err = db.AutoMigrate(&inventoryItem{})
if err != nil {
log.Fatal(err)
}
log.Print("Database Migration Complete")
// Seed database so we have fake data
seedDatabase()
// Setup http Handles
http.HandleFunc("/", handler)
http.HandleFunc("/getAvailableInventory", getAvailableInventory)
// Determine port for HTTP service.
port := os.Getenv("PORT")
if port == "" {
port = "8080"
log.Printf("defaulting to port %s", port)
}
// Start HTTP server.
log.Printf("listening on port %s", port)
if err := http.ListenAndServe(":"+port, nil); err != nil {
log.Fatal(err)
}
}