예제 #1
0
파일: main.go 프로젝트: jackc/lunchkin-db
func main() {
	router := qv.NewRouter()
	router.Get("/players", http.HandlerFunc(getPlayers))
	router.Post("/players", http.HandlerFunc(createPlayer))
	router.Delete("/players/:id", http.HandlerFunc(deletePlayer))
	router.Get("/games", http.HandlerFunc(getGames))
	router.Post("/games", http.HandlerFunc(createGame))
	router.Delete("/games/:id", http.HandlerFunc(deleteGame))
	router.Get("/standings", http.HandlerFunc(getStandings))
	http.Handle("/api/v1/", http.StripPrefix("/api/v1", router))
	http.Handle("/", NoDirListing(http.FileServer(http.Dir(config.assetPath))))

	listenAt := fmt.Sprintf("%s:%s", config.listenAddress, config.listenPort)
	fmt.Printf("Starting to listen on: %s\n", listenAt)

	if err := http.ListenAndServe(listenAt, nil); err != nil {
		os.Stderr.WriteString("Could not start web server!\n")
		os.Exit(1)
	}
}
예제 #2
0
파일: http.go 프로젝트: jackc/tpr
func NewAPIHandler(pool *pgx.ConnPool, mailer Mailer, logger log.Logger) http.Handler {
	router := qv.NewRouter()

	router.Post("/register", EnvHandler(pool, mailer, logger, RegisterHandler))
	router.Post("/sessions", EnvHandler(pool, mailer, logger, CreateSessionHandler))
	router.Delete("/sessions/:id", EnvHandler(pool, mailer, logger, AuthenticatedHandler(DeleteSessionHandler)))
	router.Post("/subscriptions", EnvHandler(pool, mailer, logger, AuthenticatedHandler(CreateSubscriptionHandler)))
	router.Delete("/subscriptions/:id", EnvHandler(pool, mailer, logger, AuthenticatedHandler(DeleteSubscriptionHandler)))
	router.Post("/request_password_reset", EnvHandler(pool, mailer, logger, RequestPasswordResetHandler))
	router.Post("/reset_password", EnvHandler(pool, mailer, logger, ResetPasswordHandler))
	router.Get("/feeds", EnvHandler(pool, mailer, logger, AuthenticatedHandler(GetFeedsHandler)))
	router.Post("/feeds/import", EnvHandler(pool, mailer, logger, AuthenticatedHandler(ImportFeedsHandler)))
	router.Get("/feeds.xml", EnvHandler(pool, mailer, logger, AuthenticatedHandler(ExportFeedsHandler)))
	router.Get("/items/unread", EnvHandler(pool, mailer, logger, AuthenticatedHandler(GetUnreadItemsHandler)))
	router.Post("/items/unread/mark_multiple_read", EnvHandler(pool, mailer, logger, AuthenticatedHandler(MarkMultipleItemsReadHandler)))
	router.Delete("/items/unread/:id", EnvHandler(pool, mailer, logger, AuthenticatedHandler(MarkItemReadHandler)))
	router.Get("/items/archived", EnvHandler(pool, mailer, logger, AuthenticatedHandler(GetArchivedItemsHandler)))
	router.Get("/account", EnvHandler(pool, mailer, logger, AuthenticatedHandler(GetAccountHandler)))
	router.Patch("/account", EnvHandler(pool, mailer, logger, AuthenticatedHandler(UpdateAccountHandler)))

	return router
}