code: func (c *WorkItemLabelsController) List(ctx *app.ListWorkItemLabelsContext) error {
  	err := application.Transactional(c.db, func(appl application.Application) error {
  		wi, err := appl.WorkItems().LoadByID(ctx, ctx.WiID)
  		if err != nil {
  			return goa.ErrNotFound(err.Error())
  		}
  		labelIDs := wi.Fields[workitem.SystemLabels].([]interface{})
  		ls := make([]label.Label, 0, len(labelIDs))
  		for _, lbl := range labelIDs {
  			lblStr := lbl.(string)
  			id, err := uuid.FromString(lblStr)
  			if err != nil {
  				log.Error(nil, map[string]interface{}{
  					"label_id": lblStr,
  					"err":      err,
  				}, "error in converting string to UUID")
  				return goa.ErrNotFound(err.Error())
  			}
  			l, err := appl.Labels().Load(ctx, id)
  			if err != nil {
  				log.Error(nil, map[string]interface{}{
  					"label_id": id,
  					"err":      err,
  				}, "error in loading label")
  				return err
  			}
  			ls = append(ls, *l)
  		}
  
  		return ctx.ConditionalEntities(ls, c.config.GetCacheControlLabels, func() error {
  			res := &app.LabelList{}
  			res.Data = ConvertLabels(appl, ctx.Request, ls)
  			res.Meta = &app.WorkItemListResponseMeta{
  				TotalCount: len(res.Data),
  			}
  			return ctx.OK(res)
  		})
  	})
  	if err != nil {
  		return jsonapi.JSONErrorResponse(ctx, err)
  	}
  	return nil
  }
docs: // List runs the list action.