code: func (c *WorkItemCommentsController) Create(ctx *app.CreateWorkItemCommentsContext) error {
  	var newComment comment.Comment
  	err := application.Transactional(c.db, func(appl application.Application) error {
  		_, err := appl.WorkItems().LoadByID(ctx, ctx.WiID)
  		if err != nil {
  			return goa.ErrNotFound(err.Error())
  		}
  		currentUserIdentityID, err := login.ContextIdentity(ctx)
  		if err != nil {
  			return goa.ErrUnauthorized(err.Error())
  		}
  
  		reqComment := ctx.Payload.Data
  		markup := rendering.NilSafeGetMarkup(reqComment.Attributes.Markup)
  		var parentCommentID id.NullUUID
  		if reqComment.Relationships != nil && reqComment.Relationships.ParentComment != nil {
  			stringUUID := *reqComment.Relationships.ParentComment.Data.ID
  			tempUUID, err := uuid.FromString(stringUUID)
  			if err != nil {
  				return jsonapi.JSONErrorResponse(ctx, err)
  			}
  			parentCommentID = id.NullUUID{
  				UUID:  tempUUID,
  				Valid: true,
  			}
  		}
  		newComment = comment.Comment{
  			ParentID:        ctx.WiID,
  			Body:            reqComment.Attributes.Body,
  			Markup:          markup,
  			Creator:         *currentUserIdentityID,
  			ParentCommentID: parentCommentID,
  		}
  
  		err = appl.Comments().Create(ctx, &newComment, *currentUserIdentityID)
  		if err != nil {
  			return goa.ErrInternal(err.Error())
  		}
  
  		res := &app.CommentSingle{
  			Data: ConvertComment(ctx.Request, newComment),
  		}
  		return ctx.OK(res)
  	})
  	if err != nil {
  		return jsonapi.JSONErrorResponse(ctx, err)
  	}
  	if ctx.ResponseData.Status == 200 {
  		c.notification.Send(ctx, notification.NewCommentCreated(newComment.ID.String()))
  	}
  	return nil
  }
docs: // Create runs the create action.