Derek McQuay
901d8e5070
basically copied this from my previous work in starz. Wanted to get google oauth working before changing much around.
77 lines
1.7 KiB
Go
77 lines
1.7 KiB
Go
package chipmunk
|
|
|
|
import (
|
|
"bytes"
|
|
"io"
|
|
"net/http"
|
|
"path/filepath"
|
|
|
|
"github.com/elazarl/go-bindata-assetfs"
|
|
"github.com/gorilla/sessions"
|
|
)
|
|
|
|
var prefix map[string]string
|
|
|
|
func addRoutes(sm *http.ServeMux, server *Server, staticFiles string) {
|
|
prefix = map[string]string{
|
|
"info": "/info/",
|
|
"static": "/static/s/",
|
|
"protected": "/static/",
|
|
"login": "/api/v0/login/",
|
|
"logout": "/api/v0/logout/",
|
|
"list": "/api/v0/list/",
|
|
"oauth": "/api/v0/oauth_cb/",
|
|
"auth": "/api/v0/auth/",
|
|
"health": "/healthz",
|
|
}
|
|
|
|
if staticFiles == "" {
|
|
sm.Handle(
|
|
prefix["static"],
|
|
http.FileServer(
|
|
&assetfs.AssetFS{
|
|
Asset: Asset,
|
|
AssetDir: AssetDir,
|
|
AssetInfo: AssetInfo,
|
|
},
|
|
),
|
|
)
|
|
sm.HandleFunc(
|
|
"/",
|
|
func(w http.ResponseWriter, req *http.Request) {
|
|
data, err := Asset("static/s/index.html")
|
|
if err != nil {
|
|
http.Error(w, err.Error(), http.StatusNotFound)
|
|
return
|
|
}
|
|
r := bytes.NewReader(data)
|
|
io.Copy(w, r)
|
|
},
|
|
)
|
|
} else {
|
|
sm.Handle(
|
|
prefix["static"],
|
|
http.StripPrefix(
|
|
prefix["static"],
|
|
http.FileServer(http.Dir(staticFiles)),
|
|
),
|
|
)
|
|
sm.HandleFunc(
|
|
"/",
|
|
func(w http.ResponseWriter, req *http.Request) {
|
|
http.ServeFile(w, req, filepath.Join(staticFiles, "index.html"))
|
|
},
|
|
)
|
|
}
|
|
|
|
store = sessions.NewCookieStore([]byte(server.CookieSecret))
|
|
sm.HandleFunc(prefix["protected"], server.plist)
|
|
sm.HandleFunc(prefix["info"], server.serverInfo)
|
|
sm.HandleFunc(prefix["login"], server.login)
|
|
sm.HandleFunc(prefix["logout"], server.logout)
|
|
sm.HandleFunc(prefix["list"], server.list)
|
|
sm.HandleFunc(prefix["oauth"], server.oauthCallback)
|
|
sm.HandleFunc(prefix["auth"], server.auth)
|
|
sm.HandleFunc(prefix["health"], server.health)
|
|
}
|