package web import ( "net/http" "github.com/flamego/binding" "github.com/flamego/flamego" "github.com/flamego/template" "git.metaunix.net/metaunix/raven/app/db" "git.metaunix.net/metaunix/raven/app/web/form" ) func RegisterRoutes(f *flamego.Flame) { // index route - landing page for the user f.Get("/", func(t template.Template, data template.Data) { data["title"] = "Dashboard" t.HTML(http.StatusOK, "index") }) // item list route - lists all of the items in the database f.Group("/item", func() { f.Get("/list", func(t template.Template, data template.Data) { var items []db.Item db.DB.Find(&items) data["inventory"] = items data["title"] = "List of Inventory" t.HTML(http.StatusOK, "item/list") }) f.Get("/create", func(t template.Template, data template.Data) { data["title"] = "Create New Item" t.HTML(http.StatusOK, "item/create") }) f.Post("/create", binding.Form(form.Item{}), func(c flamego.Context, form form.Item) { // Create new Item object item := db.Item{ Name: form.Name, SerialNumber: form.SerialNumber, SkuNumber: form.SkuNumber, Manufacturer: form.Manufacturer, Type: form.Type, PurchasedFrom: form.PurchasedFrom, PurchasedAt: form.PurchasedAt, } db.DB.Create(&item) // Redirect user to items list c.Redirect("/item/list") }) }) }