code: func (c *Client) FindViews(ctx context.Context, filter platform.ViewFilter) ([]*platform.View, int, error) {
  	ds := []*platform.View{}
  	op := getOp(platform.OpFindViews)
  	if filter.ID != nil {
  		d, err := c.FindViewByID(ctx, *filter.ID)
  		if err != nil && platform.ErrorCode(err) != platform.ENotFound {
  			return nil, 0, &platform.Error{
  				Err: err,
  				Op:  op,
  			}
  		}
  		if d != nil {
  			ds = append(ds, d)
  		}
  
  		return ds, 1, nil
  	}
  
  	err := c.db.View(func(tx *bolt.Tx) error {
  		dashs, err := c.findViews(ctx, tx, filter)
  		if err != nil {
  			return &platform.Error{
  				Err: err,
  				Op:  op,
  			}
  		}
  		ds = dashs
  		return nil
  	})
  
  	return ds, len(ds), err
  }
docs: // FindViews retrives all views that match an arbitrary view filter.