Exemple #1
0
// 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
}