1
0
Fork 0
test/cmd/server/main.go

45 lines
1.0 KiB
Go

//go:generate protoc -I=./../../internal/model/ --go_out=plugins=grpc:./../../internal/model/ ./../../internal/model/model.proto
package main
import (
"flag"
"log"
"gitlab.com/toby3d/test/internal/db"
"gitlab.com/toby3d/test/internal/handler"
"gitlab.com/toby3d/test/internal/server"
"gitlab.com/toby3d/test/internal/store"
)
var (
flagAddr = flag.String("addr", ":2368", "set specific address and port for server instance")
flagDB = flag.String(
"db", `host=/var/run/postgresql dbname=testing sslmode=disable`,
"set specific parameters for connecting to database",
)
)
func main() {
flag.Parse()
dataBase, err := db.Open(*flagDB)
if err != nil {
log.Fatalln(err.Error())
}
defer dataBase.Close()
if err = db.AutoMigrate(dataBase); err != nil {
log.Fatalln(err.Error())
}
srv, err := server.NewServer(
*flagAddr, handler.NewHandler(store.NewCartStore(dataBase), store.NewProductStore(dataBase)),
)
if err != nil {
log.Fatalln(err.Error())
}
if err = srv.Start(); err != nil {
log.Fatalln(err.Error())
}
}