40 lines
841 B
Go
40 lines
841 B
Go
package main
|
|
|
|
import (
|
|
"context"
|
|
"log"
|
|
|
|
"example.com/bridging-sample/api/internal/config"
|
|
"example.com/bridging-sample/api/internal/db"
|
|
httpHandlers "example.com/bridging-sample/api/internal/http"
|
|
"example.com/bridging-sample/api/internal/repo"
|
|
"github.com/gin-gonic/gin"
|
|
"github.com/joho/godotenv"
|
|
)
|
|
|
|
func main() {
|
|
_ = godotenv.Load("../.env", ".env")
|
|
cfg, err := config.Load()
|
|
if err != nil {
|
|
log.Fatalf("config: %v", err)
|
|
}
|
|
|
|
ctx := context.Background()
|
|
client, err := db.NewClient(ctx, cfg.Project, cfg.Instance, cfg.Database)
|
|
if err != nil {
|
|
log.Fatalf("spanner client: %v", err)
|
|
}
|
|
defer client.Close()
|
|
|
|
items := repo.NewItemRepo(client)
|
|
h := &httpHandlers.Handlers{Items: items}
|
|
|
|
r := gin.Default()
|
|
h.Register(r)
|
|
|
|
log.Println("listening on :8080")
|
|
if err := r.Run(":8080"); err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
}
|