code: func (r *GormWorkItemLinkRepository) Delete(ctx context.Context, linkID uuid.UUID, suppressorID uuid.UUID) error {
  	defer goa.MeasureSince([]string{"goa", "db", "workitemlink", "delete"}, time.Now())
  	var lnk = WorkItemLink{}
  	tx := r.db.Where("id = ?", linkID).Find(&lnk)
  	if tx.RecordNotFound() {
  		return errors.NewNotFoundError("work item link", linkID.String())
  	}
  	// get space ID to acquire lock for
  	wiRepo := workitem.NewWorkItemRepository(r.db)
  	src, err := wiRepo.LoadByID(ctx, lnk.SourceID)
  	if err != nil {
  		return errs.Wrapf(err, "failed to load source work item for: %s", lnk.SourceID)
  	}
  	if err := r.acquireLock(src.SpaceID); err != nil {
  		return errs.Wrap(err, "failed to acquire lock during link deletion")
  	}
  	r.deleteLink(ctx, lnk, suppressorID)
  	return nil
  }
docs: // Delete deletes the work item link with the given id
  // returns NotFoundError or InternalError