|
|
|
|
@ -235,6 +235,7 @@ func main() {
|
|
|
|
|
ValidationKeyGetter: func(token *jwt.Token) (interface{}, error) {
|
|
|
|
|
return []byte("TODO"), nil
|
|
|
|
|
}})
|
|
|
|
|
var jHdlr = jwt.Handler // make an alias so routes will be more readable
|
|
|
|
|
|
|
|
|
|
// Create or update schemas …
|
|
|
|
|
db.AutoMigrate(&User{})
|
|
|
|
|
@ -246,6 +247,7 @@ func main() {
|
|
|
|
|
db.Model(&Item{}).Related(&Unit{})
|
|
|
|
|
defer db.Close()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// define URL handlers
|
|
|
|
|
r := mux.NewRouter()
|
|
|
|
|
|
|
|
|
|
@ -255,26 +257,26 @@ func main() {
|
|
|
|
|
// TODO: delete, modify
|
|
|
|
|
|
|
|
|
|
// List Management
|
|
|
|
|
r.Handle("/lists", jwt.Handler(ehttp.HandlerFunc(createList))).Methods("POST") // Make a new list
|
|
|
|
|
r.Handle("/lists", jwt.Handler(ehttp.HandlerFunc(nil))).Methods("GET") // Get list of lists
|
|
|
|
|
r.Handle("/lists/{name}", jwt.Handler(ehttp.HandlerFunc(nil))).Methods("PUT") // Update list (name, icon, …)
|
|
|
|
|
r.Handle("/lists/{name}", jwt.Handler(ehttp.HandlerFunc(nil))).Methods("DELETE") // Delete a list
|
|
|
|
|
r.Handle("/lists/{name}", jwt.Handler(ehttp.HandlerFunc(nil))).Methods("GET") // Get list content (i.e., items)
|
|
|
|
|
r.Handle("/lists", jHdlr(ehttp.HandlerFunc(createList))).Methods("POST") // Make a new list
|
|
|
|
|
r.Handle("/lists", jHdlr(ehttp.HandlerFunc(nil))).Methods("GET") // Get list of lists
|
|
|
|
|
r.Handle("/lists/{name}", jHdlr(ehttp.HandlerFunc(nil))).Methods("PUT") // Update list (name, icon, …)
|
|
|
|
|
r.Handle("/lists/{name}", jHdlr(ehttp.HandlerFunc(nil))).Methods("DELETE") // Delete a list
|
|
|
|
|
r.Handle("/lists/{name}", jHdlr(ehttp.HandlerFunc(nil))).Methods("GET") // Get list content (i.e., items)
|
|
|
|
|
// List sharing
|
|
|
|
|
r.Handle("/lists/{name}/sharers", jwt.Handler(ehttp.HandlerFunc(nil))).Methods("POST") // Add new sharer
|
|
|
|
|
r.Handle("/lists/{name}/sharers", jwt.Handler(ehttp.HandlerFunc(nil))).Methods("GET") // Get list of sharers
|
|
|
|
|
r.Handle("/lists/{name}/sharers/{user}", jwt.Handler(ehttp.HandlerFunc(nil))).Methods("DELETE") // Remove sharer
|
|
|
|
|
r.Handle("/lists/{name}/sharers", jHdlr(ehttp.HandlerFunc(nil))).Methods("POST") // Add new sharer
|
|
|
|
|
r.Handle("/lists/{name}/sharers", jHdlr(ehttp.HandlerFunc(nil))).Methods("GET") // Get list of sharers
|
|
|
|
|
r.Handle("/lists/{name}/sharers/{user}", jHdlr(ehttp.HandlerFunc(nil))).Methods("DELETE") // Remove sharer
|
|
|
|
|
|
|
|
|
|
r.Handle("/lists/{name}/items", jwt.Handler(ehttp.HandlerFunc(nil))).Methods("PUT") // Add new item
|
|
|
|
|
r.Handle("/lists/{name}/items/{item}", jwt.Handler(ehttp.HandlerFunc(nil))).Methods("DELETE") // Delete item
|
|
|
|
|
r.Handle("/lists/{name}/items/{item}", jwt.Handler(ehttp.HandlerFunc(nil))).Methods("POST") // Update item
|
|
|
|
|
r.Handle("/lists/{name}/items", jHdlr(ehttp.HandlerFunc(nil))).Methods("PUT") // Add new item
|
|
|
|
|
r.Handle("/lists/{name}/items/{item}", jHdlr(ehttp.HandlerFunc(nil))).Methods("DELETE") // Delete item
|
|
|
|
|
r.Handle("/lists/{name}/items/{item}", jHdlr(ehttp.HandlerFunc(nil))).Methods("POST") // Update item
|
|
|
|
|
|
|
|
|
|
// Unit-history (unit is a ever-growing list only used for auto-completion)
|
|
|
|
|
r.Handle("/units", jwt.Handler(ehttp.HandlerFunc(nil))).Methods("POST") // Make a new unit
|
|
|
|
|
r.Handle("/units", jwt.Handler(ehttp.HandlerFunc(nil))).Methods("GET") // Get list of units
|
|
|
|
|
r.Handle("/units", jHdlr(ehttp.HandlerFunc(nil))).Methods("POST") // Make a new unit
|
|
|
|
|
r.Handle("/units", jHdlr(ehttp.HandlerFunc(nil))).Methods("GET") // Get list of units
|
|
|
|
|
|
|
|
|
|
loggedRouter := handlers.LoggingHandler(os.Stdout, r)
|
|
|
|
|
http.Handle("/", loggedRouter)
|
|
|
|
|
http.ListenAndServe(":8000", nil)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|