Ejemplo n.º 1
0
func main() {
	// get the environment for the config
	appEnv := ""
	env := os.Getenv("BTBBOARD_ENV")
	switch env {
	case "dev", "test", "prod":
		appEnv = env
	default:
		appEnv = "dev"
	}

	config.LoadConfig(appEnv)

	// make the package level database connection
	if err := models.ConnectToDB(config.String("database.host"), config.String("database.db")); err != nil {
		fmt.Fprintln(os.Stderr, "Could not connect to the database")
		os.Exit(1)
	}
	defer models.CloseDB()

	bin := comandante.New("btbboard", "BitBar dashboard")
	bin.IncludeHelp()

	// add indexes to the database
	addIndexes := comandante.NewCommand("index", "Add indexes to the database", cmds.IndexAction)
	addIndexes.Documentation = cmds.IndexDoc
	bin.RegisterCommand(addIndexes)

	// update vertcoin prices
	updateCoinPrices := comandante.NewCommand("update_coin_prices", "Get updated vertcoin prices", cmds.UpdateAction(&updaters.CoinPrice{}))
	updateCoinPrices.Documentation = cmds.UpdateCoinPricesDoc
	bin.RegisterCommand(updateCoinPrices)

	// pricing rollup for the graph
	rollupPricing := comandante.NewCommand("pricing_rollup", "Aggregate pricing information", cmds.PricingRollupAction)
	rollupPricing.Documentation = cmds.PricingRollupDoc
	bin.RegisterCommand(rollupPricing)

	// update network info
	updateNetwork := comandante.NewCommand("update_network", "Get updated network information", cmds.UpdateAction(&updaters.Network{}))
	updateNetwork.Documentation = cmds.UpdateCoinPricesDoc
	bin.RegisterCommand(updateNetwork)

	// update reddit stories
	updateReddit := comandante.NewCommand("update_reddit", "Get new /r/vertcoin posts", cmds.UpdateAction(&updaters.Reddit{}))
	updateReddit.Documentation = cmds.UpdateRedditDoc
	bin.RegisterCommand(updateReddit)

	// run web service
	webService := comandante.NewCommand("serve", "Start the VTCBoard web server", cmds.ServeAction)
	webService.Documentation = cmds.ServerDoc
	bin.RegisterCommand(webService)

	if err := bin.Run(); err != nil {
		fmt.Fprintln(os.Stderr, err)
	}
}
Ejemplo n.º 2
0
// DropCollection drops all collections in the database. For this function to
// work the config environment must be set to "test".
func DropCollections() {
	if config.String("env") != "test" {
		panic("DropCollections only works in the test environment")
	}

	conn := CloneConnection()
	defer conn.Close()

	collections := []string{priceCollection, networkCollection, postCollection, averageCollection}
	for _, collection := range collections {
		conn.DB.C(collection).DropCollection()
	}
}
Ejemplo n.º 3
0
func (s *coinPriceSuite) SetUpTest(c *C) {
	config.LoadConfig("test")
	models.ConnectToDB(config.String("database.host"), config.String("database.db"))
	models.DropCollections()
}
Ejemplo n.º 4
0
func (s *postSuite) SetUpTest(c *C) {
	config.LoadConfig("test")
	ConnectToDB(config.String("database.host"), config.String("database.db"))
	DropCollections()
}