func main() { assetPath := flag.String("assets", "", "Path to static assets to host") dbHostArg := flag.String("mongoHost", "localhost", "MongoDB server address, defaults to localhost") jwkPath := flag.String("heartJWK", "", "Path the JWK for the HEART client") clientID := flag.String("heartClientID", "", "Client ID registered with the OP") opURL := flag.String("heartOP", "", "URL for the OpenID Provider") sessionSecret := flag.String("secret", "", "Secret for the cookie session") flag.Parse() s := server.NewServer(*dbHostArg) session, err := mgo.Dial(*dbHostArg) if err != nil { panic(err) } db := session.DB("fhir") var authConfig auth.Config if *jwkPath != "" { if *clientID == "" || *opURL == "" { fmt.Println("You must provide both a client ID and OP URL for HEART mode") return } secret := *sessionSecret if secret == "" { secret = "reallySekret" } authConfig = auth.HEART(*clientID, *jwkPath, *opURL, secret) } else { authConfig = auth.None() } ar := func(e *gin.Engine) { e.GET("/QualityReport/:id", controllers.ShowQualityReportHandler(db)) e.POST("/QualityReport", controllers.CreateQualityReportHandler(db)) e.GET("/PatientReport/:id", controllers.ShowIndividualResultsForPatientHandler(db)) e.GET("/QualityReport/:id/PatientResults", controllers.ShowQualityReportPatientsHandler(db)) s.Engine.GET("/CQMMeasure/:id", controllers.ShowMeasureHandler(db)) e.GET("/CQMMeasure", controllers.IndexMeasureHandler(db)) e.GET("/UserInfo", controllers.UserInfo) ptmatch.Setup(e) if *assetPath != "" { e.StaticFile("/", fmt.Sprintf("%s/index.html", *assetPath)) e.Static("/assets", fmt.Sprintf("%s/assets", *assetPath)) } } recMatchWatch := middleware.PostProcessRecordMatchResponse() s.AddMiddleware("Bundle", recMatchWatch) s.AfterRoutes = append(s.AfterRoutes, ar) s.Run(server.Config{Auth: authConfig, ServerURL: "http://localhost:3001", DatabaseName: "fhir"}) }
func main() { // Check environment variable for a linked MongoDB container mongoHost := os.Getenv("MONGO_PORT_27017_TCP_ADDR") if mongoHost == "" { mongoHost = "localhost" } s := fhirSvr.NewServer(mongoHost) assetPath := flag.String("assets", "", "Path to static assets to host") jwkPath := flag.String("heartJWK", "", "Path the JWK for the HEART client") clientID := flag.String("heartClientID", "", "Client ID registered with the OP") opURL := flag.String("heartOP", "", "URL for the OpenID Provider") sessionSecret := flag.String("secret", "", "Secret for the cookie session") flag.Parse() var authConfig auth.Config if *jwkPath != "" { if *clientID == "" || *opURL == "" { fmt.Println("You must provide both a client ID and OP URL for HEART mode") return } secret := *sessionSecret if secret == "" { secret = "reallySekret" } authConfig = auth.HEART(*clientID, *jwkPath, *opURL, secret) } else { authConfig = auth.None() } recMatchWatch := middleware.PostProcessRecordMatchResponse() s.AddMiddleware("Bundle", recMatchWatch) ar := func(e *gin.Engine) { server.Setup(e) if *assetPath != "" { e.StaticFile("/", fmt.Sprintf("%s/index.html", *assetPath)) e.Static("/assets", fmt.Sprintf("%s/assets", *assetPath)) } } s.AfterRoutes = append(s.AfterRoutes, ar) s.Run(fhirSvr.Config{Auth: authConfig, ServerURL: "http://localhost:3001", DatabaseName: "fhir"}) }
// runs once func (s *ServerSuite) SetUpSuite(c *C) { var err error s.Server = fhir_svr.NewServer("localhost") var mongoSession *mgo.Session // Set up the database if mongoSession, err = mgo.Dial("localhost"); err != nil { logger.Log.Error("Cannot connect to MongoDB. Is service running?") panic(err) } c.Assert(mongoSession, NotNil) database := mongoSession.DB("ptmatch-test") fhir_svr.Database = database Setup(s.Server.Engine) recMatchWatch := middleware.PostProcessRecordMatchResponse() s.Server.AddMiddleware("Bundle", recMatchWatch) fhir_svr.RegisterRoutes(s.Server.Engine, s.Server.MiddlewareConfig, fhir_svr.NewMongoDataAccessLayer(database), fhir_svr.Config{}) }
func main() { s := server.NewServer("localhost") s.Run() }