code: func (c *IterationController) Show(ctx *app.ShowIterationContext) error {
  	id, err := uuid.FromString(ctx.IterationID)
  	if err != nil {
  		return jsonapi.JSONErrorResponse(ctx, goa.ErrNotFound(err.Error()))
  	}
  	var itr *iteration.Iteration
  	err = application.Transactional(c.db, func(appl application.Application) error {
  		itr, err = appl.Iterations().Load(ctx, id)
  		return err
  	})
  	if err != nil {
  		return jsonapi.JSONErrorResponse(ctx, err)
  	}
  	return ctx.ConditionalRequest(*itr, c.config.GetCacheControlIteration, func() error {
  		var wiCounts map[string]workitem.WICountsPerIteration
  		var parentItrs []iteration.Iteration
  		err := application.Transactional(c.db, func(appl application.Application) error {
  			var err error
  			wiCounts, err = appl.WorkItems().GetCountsForIteration(ctx, itr)
  			if err != nil {
  				return err
  			}
  			parentItrs, err = appl.Iterations().LoadMultiple(ctx, itr.Path)
  			return err
  		})
  		if err != nil {
  			return jsonapi.JSONErrorResponse(ctx, err)
  		}
  		itrMap := make(iterationIDMap)
  		for _, itr := range parentItrs {
  			itrMap[itr.ID] = itr
  		}
  		return ctx.OK(&app.IterationSingle{
  			Data: ConvertIteration(ctx.Request, *itr, parentPathResolver(itrMap), updateIterationsWithCounts(wiCounts)),
  		})
  	})
  }
docs: // Show runs the show action.