code: func (r *GormWorkItemLinkTypeRepository) List(ctx context.Context, spaceTemplateID uuid.UUID) ([]WorkItemLinkType, error) {
  	defer goa.MeasureSince([]string{"goa", "db", "workitemlinktype", "list"}, time.Now())
  	log.Info(ctx, map[string]interface{}{
  		"space_template_id": spaceTemplateID,
  	}, "Listing work item link types by space template ID %s", spaceTemplateID)
  
  	// check space template exists
  	if err := spacetemplate.NewRepository(r.db).CheckExists(ctx, spaceTemplateID); err != nil {
  		return nil, errors.NewNotFoundError("space template", spaceTemplateID.String())
  	}
  
  	// We don't have any where clause or paging at the moment.
  	var modelLinkTypes []WorkItemLinkType
  	db := r.db.Where("space_template_id IN (?, ?)", spaceTemplateID, spacetemplate.SystemBaseTemplateID).Order("name")
  	if err := db.Find(&modelLinkTypes).Error; err != nil {
  		log.Error(ctx, map[string]interface{}{
  			"err":               err,
  			"space_template_id": spaceTemplateID,
  		}, "failed to list work item link types")
  		return nil, errs.Wrapf(err, "failed to find link types")
  	}
  	return modelLinkTypes, nil
  }
docs: // List returns all work item link types