diff options
Diffstat (limited to 'modules')
-rw-r--r-- | modules/lists/lists.go | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/modules/lists/lists.go b/modules/lists/lists.go index 2b1ced3..ae1ec65 100644 --- a/modules/lists/lists.go +++ b/modules/lists/lists.go | |||
@@ -61,6 +61,8 @@ func (m *Module) Init(g *grilist.Grilist) { | |||
61 | m.grils = grilsModule | 61 | m.grils = grilsModule |
62 | m.g.Router.GET("/list/:id", m.viewList) | 62 | m.g.Router.GET("/list/:id", m.viewList) |
63 | m.g.Router.POST("/list/:id", m.addGrilToList) | 63 | m.g.Router.POST("/list/:id", m.addGrilToList) |
64 | m.g.Router.GET("/new/list", m.displayCreateList) | ||
65 | m.g.Router.POST("/new/list", m.createList) | ||
64 | } | 66 | } |
65 | 67 | ||
66 | func (m *Module) getListGrils(list *List) error { | 68 | func (m *Module) getListGrils(list *List) error { |
@@ -260,6 +262,41 @@ func (m *Module) addGrilToList(w http.ResponseWriter, r *http.Request, p httprou | |||
260 | http.Error(w, "not implemented", 500) | 262 | http.Error(w, "not implemented", 500) |
261 | } | 263 | } |
262 | 264 | ||
265 | func (m *Module) displayCreateList(w http.ResponseWriter, r *http.Request, p httprouter.Params) { | ||
266 | user, _ := m.g.Charakterin.GetUserFromRequest(r) | ||
267 | |||
268 | data := m.g.Renderer.DefaultData() | ||
269 | data["user"] = user | ||
270 | |||
271 | m.g.Renderer.RenderPage("create_list", w, data) | ||
272 | } | ||
273 | |||
274 | func (m *Module) createList(w http.ResponseWriter, r *http.Request, p httprouter.Params) { | ||
275 | user, err := m.g.Charakterin.GetUserFromRequest(r) | ||
276 | if err != nil { | ||
277 | log.Println(err) | ||
278 | http.Error(w, "500", http.StatusInternalServerError) | ||
279 | return | ||
280 | } | ||
281 | |||
282 | values, err := readBody(r) | ||
283 | if err != nil { | ||
284 | log.Println(err) | ||
285 | http.Error(w, "500", http.StatusInternalServerError) | ||
286 | return | ||
287 | } | ||
288 | |||
289 | var id int | ||
290 | err = m.g.DB.QueryRow(`INSERT INTO grilist.lists(user_id, name, description) VALUES($1, $2, $3) RETURNING id`, user.ID, values.Get("name"), values.Get("description")).Scan(&id) | ||
291 | if err != nil { | ||
292 | log.Println(err) | ||
293 | http.Error(w, "500", http.StatusInternalServerError) | ||
294 | return | ||
295 | } | ||
296 | |||
297 | http.Redirect(w, r, fmt.Sprintf("/list/%d", id), 302) | ||
298 | } | ||
299 | |||
263 | // New erstellt eine neue Instanz des Modules | 300 | // New erstellt eine neue Instanz des Modules |
264 | func New() *Module { | 301 | func New() *Module { |
265 | return &Module{} | 302 | return &Module{} |