// SaveIncident - Saves or Updates the passed in incident to the database func SaveIncident(incident domain.Incident) { doneInsert := make(chan bool) go func() { if incident.ID == 0 { incident.ID = GetNextSequence("increp", "incidents") + 1 Save(incident, "increp", "incidents") CreateIncidentIndex(incident) doneInsert <- true } else { Update(incident, bson.M{"ID": incident.ID}, "increp", "incidents") CreateIncidentIndex(incident) doneInsert <- true } }() <-doneInsert }