// HandleChannel handles channel operations func (c *Controller) HandleChannel(channel *models.Channel) error { if channel.TypeConstant != models.Channel_TYPE_GROUP { return nil } chans, err := channel.FetchAllChannelsOfGroup() if err != nil { return err } var errs *multierror.Error for _, ch := range chans { // we'r gonna innore all `not found` errors while deleting datas if err := ch.Delete(); err != nil && err != bongo.RecordNotFound { errs = multierror.Append(errs, err) } if err := ch.DeleteChannelParticipants(); err != nil { return err } } if errs.ErrorOrNil() != nil { return errs } return nil }