add builders and chaining methods for various types and variables for better reusability and readability

This commit is contained in:
Robin Olsen
2026-02-19 17:26:16 +01:00
parent 2e702e799d
commit 0f41f76679
10 changed files with 179 additions and 68 deletions

View File

@@ -25,36 +25,25 @@ func NewCreateIssueTask(svc *service.Services) *CreateIssueTask {
}
func (t *CreateIssueTask) Config() task.TaskConfig {
config := BaseConfig()
config.StatisticsStoragePath = "./.pm/create-issue-stats.json"
return config
return BaseConfig().WithStatisticsStoragePath("./.pm/create-issue-stats.json")
}
func (t *CreateIssueTask) Details() taskui.TaskDetails {
details := BaseDetails()
details.Title = "Create Issue Task"
details.Description = description
return details
return BaseDetails().WithTitle("Create Issue Task").WithDescription(description)
}
func (t *CreateIssueTask) Questions(interfaceType task.InterfaceType) taskui.Questions {
questions := BaseQuestions(interfaceType)
return questions
return BaseQuestions(interfaceType)
}
func (t *CreateIssueTask) Setup(ctx context.Context) error {
// Clear existing issues to ensure a clean state for the task
if err := t.svc.DeleteIssues(); err != nil {
if err := ClearIssues(t.svc); err != nil {
return err
}
issue := models.Issue{
ID: "pm-abc",
Title: "Create A New Issue",
Description: description,
IssueType: models.TypeTask,
Status: models.StatusOpen,
}
issue := models.NewBaseIssue().
WithTitle("Create a New Issue").WithDescription(description).Build()
return t.svc.Beads.CreateIssue(ctx, &issue, "")
}