func deleteNoteOccurrences()

in pkg/attestation/import.go [149:186]


func deleteNoteOccurrences(ctx context.Context, nr utils.NoteResource, resourceURL string) error {
	c, err := ca.NewClient(ctx)
	if err != nil {
		return errors.Wrap(err, "error creating client")
	}
	defer c.Close()

	// Delete Notes

	dr := &g.DeleteNoteRequest{
		Name: nr.Name(),
	}
	_ = c.GetGrafeasClient().DeleteNote(ctx, dr)

	// Delete Occurrences
	req := &g.ListOccurrencesRequest{
		Parent:   nr.Project,
		Filter:   fmt.Sprintf("resource_url=\"https://%s\"", resourceURL),
		PageSize: 1000,
	}
	it := c.GetGrafeasClient().ListOccurrences(ctx, req)
	for {
		resp, err := it.Next()
		if errors.Is(err, iterator.Done) {
			break
		}
		if err != nil {
			return err
		}

		dr := &g.DeleteOccurrenceRequest{
			Name: resp.Name,
		}
		_ = c.GetGrafeasClient().DeleteOccurrence(ctx, dr)
	}

	return nil
}