func()

in pkg/cloud/rgraph/rnode/generic_funcs.go [132:172]


func (f *CreateFuncs[GA, Alpha, Beta]) Do(
	ctx context.Context,
	id *cloud.ResourceID,
	r api.Resource[GA, Alpha, Beta],
) error {
	// TODO: Context logging
	// TODO: span
	switch r.Version() {
	case meta.VersionGA:
		raw, err := r.ToGA()
		if err != nil {
			return err
		}
		err = f.GA.Do(ctx, id.Key, raw, cloud.ForceProjectID(id.ProjectID))
		if err != nil {
			return err
		}
		return nil
	case meta.VersionAlpha:
		raw, err := r.ToAlpha()
		if err != nil {
			return err
		}
		err = f.Alpha.Do(ctx, id.Key, raw, cloud.ForceProjectID(id.ProjectID))
		if err != nil {
			return err
		}
		return nil
	case meta.VersionBeta:
		raw, err := r.ToBeta()
		if err != nil {
			return err
		}
		err = f.Beta.Do(ctx, id.Key, raw, cloud.ForceProjectID(id.ProjectID))
		if err != nil {
			return err
		}
		return nil
	}
	return fmt.Errorf("createFuncs.do unsupported version %q", r.Version())
}