// Create a new Mail thread func CreateNewMailThread(s *mgo.Collection, mail *mail.Mail) (bson.ObjectId, bool) { var newMailThread MailThread newMailThread.Init() newMailThread.ReferenceCount = mail.GetReferenceCount() newMailThread.Mails = append(newMailThread.Mails, *mail) err := s.Insert(newMailThread) if err != nil { // TODO do a logging to track everything panic("Failed to insert the mail" + err.Error()) return newMailThread.Id, false } return newMailThread.Id, true }