| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- package main
- import (
- "fmt"
- "net/http"
- "os"
- "runtime"
- "github.com/codegangsta/negroni"
- "github.com/gorilla/mux"
- )
- const DBNAME = "satellizer"
- var (
- PORT = ":3000"
- MONGODB_URL = "localhost"
- )
- func init() {
- if p := os.Getenv("PORT"); p != "" {
- PORT = ":" + p
- }
- if m := os.Getenv("MONGODB_URL"); m != "" {
- MONGODB_URL = m
- }
- }
- func main() {
- runtime.GOMAXPROCS(runtime.NumCPU())
- dbSession := DBConnect(MONGODB_URL)
- DBEnsureIndices(dbSession)
- router := mux.NewRouter().StrictSlash(true)
- api := router.PathPrefix("/api").Subrouter()
- api.HandleFunc("/me", Me).Methods("GET")
- api.HandleFunc("/me", UpdateAccount).Methods("PUT")
- authApi := router.PathPrefix("/auth").Subrouter()
- authApi.HandleFunc("/login", Login).Methods("POST")
- authApi.HandleFunc("/signup", SignUp).Methods("POST")
- authApi.HandleFunc("/facebook", LoginWithFacebook).Methods("POST")
- authApi.HandleFunc("/twitter", LoginWithTwitter).Methods("POST")
- authApi.HandleFunc("/google", LoginWithGoogle).Methods("POST")
- n := negroni.Classic()
- n.Use(JWTMiddleware())
- n.Use(DBMiddleware(dbSession))
- n.Use(ParseFormMiddleware())
- n.UseHandler(router)
- static := router.PathPrefix("/").Subrouter()
- static.Methods("GET").Handler(http.FileServer(http.Dir("../../client")))
- fmt.Println("Launching server at http://localhost" + PORT)
- err := http.ListenAndServe(PORT, n)
- if err != nil {
- fmt.Println(err)
- }
- }
|