Example #1
0
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
}
Example #2
0
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
}
Example #3
0
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)
	}
}
Example #4
0
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)
	}
}
Example #5
0
func GetOne(id string, dbConnection *bongo.Connection) (*Meeting, error) {
	meeting := &Meeting{}
	err := dbConnection.Collection(CollectionName).FindById(bson.ObjectIdHex(id), meeting)

	return meeting, err
}