...

Source file src/edge-infra.dev/cmd/edge/api/server.go

Documentation: edge-infra.dev/cmd/edge/api

     1  package main
     2  
     3  import (
     4  	"flag"
     5  	"os"
     6  	"path/filepath"
     7  
     8  	"edge-infra.dev/pkg/edge/api/graph/setup"
     9  	"edge-infra.dev/pkg/edge/api/types"
    10  	"edge-infra.dev/pkg/lib/fog"
    11  
    12  	_ "github.com/GoogleCloudPlatform/cloudsql-proxy/proxy/dialers/postgres"
    13  	"github.com/gin-gonic/gin"
    14  	"github.com/joho/godotenv"
    15  	"github.com/peterbourgon/ff/v3"
    16  )
    17  
    18  func init() {
    19  	// load .env file only when the APP_ENV variable is not specified
    20  	if os.Getenv("APP_ENV") == "" {
    21  		if err := godotenv.Load(filepath.Join("cmd", "edge", "api", ".env")); err != nil {
    22  			log := fog.New()
    23  			log.Error(err, "error loading .env file")
    24  		}
    25  	}
    26  	gin.SetMode(gin.ReleaseMode)
    27  	gin.DisableConsoleColor()
    28  }
    29  
    30  func main() {
    31  	flags := flag.NewFlagSet("ee-bff-golang", flag.ExitOnError)
    32  	config := &types.Config{}
    33  	config.BindFlags(flags)
    34  	config.BindKubeConfigFlag(flags)
    35  	if err := ff.Parse(flags, os.Args[1:], ff.WithEnvVarNoPrefix(), ff.WithIgnoreUndefined(true)); err != nil {
    36  		errLog := fog.New()
    37  		errLog.Error(err, "failed to parse command line arguments or environment variables")
    38  	}
    39  	config.Validate()
    40  
    41  	// Logger Setup
    42  	log := setup.Log(config)
    43  
    44  	//setup db connection
    45  	dbConnection, _ := setup.DB(config, log)
    46  	defer dbConnection.Close()
    47  
    48  	bqClient, err := setup.BQClient(config)
    49  	if err != nil {
    50  		log.Error(err, "failed to create bq client")
    51  		os.Exit(1)
    52  	}
    53  
    54  	resolver := setup.Resolver(config, dbConnection, bqClient)
    55  
    56  	gqlConfig := setup.GqlConfig(resolver)
    57  	srv := setup.GqlServer(gqlConfig, config, resolver)
    58  
    59  	setup.Server(log, config, srv, dbConnection, resolver)
    60  }
    61  

View as plain text