func Delete(id string, dbConnection *bongo.Connection) error { m := &Meeting{} m, err := GetOne(id, dbConnection) if err == nil { err = dbConnection.Collection(CollectionName).DeleteDocument(m) } return err }
func GetAll(dbConnection *bongo.Connection) []Meeting { results := dbConnection.Collection(CollectionName).Find(nil) m := &Meeting{} ms := make([]Meeting, 0) for results.Next(m) { ms = append(ms, *m) } return ms }
func Create(w http.ResponseWriter, r *http.Request, dbConnection *bongo.Connection) { m := &meeting.Meeting{} formErrors := m.Validate(r) if len(formErrors) > 0 { data := struct { Meeting *meeting.Meeting FormErrors map[string]string }{ m, formErrors, } t := template.Must(template.ParseFiles("views/layouts/base.html", "views/meetings/new.html")) t.Execute(w, data) } else { dbConnection.Collection(meeting.CollectionName).Save(m) http.Redirect(w, r, "/meetings", 301) } }
func Update(w http.ResponseWriter, r *http.Request, dbConnection *bongo.Connection) { m, err := meeting.GetOne(r.FormValue("id"), dbConnection) if _, ok := err.(*bongo.DocumentNotFoundError); ok { http.NotFound(w, r) } formErrors := m.Validate(r) if len(formErrors) > 0 { data := struct { Meeting *meeting.Meeting FormErrors map[string]string }{ m, formErrors, } t := template.Must(template.ParseFiles("views/layouts/base.html", "views/meetings/edit.html")) t.Execute(w, data) } else { err = dbConnection.Collection(meeting.CollectionName).Save(m) http.Redirect(w, r, "/meetings", 301) } }
func GetOne(id string, dbConnection *bongo.Connection) (*Meeting, error) { meeting := &Meeting{} err := dbConnection.Collection(CollectionName).FindById(bson.ObjectIdHex(id), meeting) return meeting, err }