refactor services to use Interface and change name to app

This commit is contained in:
Robin Olsen
2026-02-22 16:16:09 +01:00
parent dbf619a054
commit 118e67dbf4
36 changed files with 247 additions and 219 deletions

View File

@@ -38,17 +38,12 @@ func BaseDetails() taskui.TaskDetails {
}
}
func BaseConfig() task.TaskConfig {
return task.TaskConfig{
IssuePrefix: "pm",
WebAddress: ":8080",
BeadsDBPath: "./.pm/db.db",
StatisticsStoragePath: "./.pm/stats.json",
}
func BaseConfig() task.Config {
return service.BaseConfig
}
func ClearIssues(svc *service.Services) error {
return svc.Beads.DeleteIssues()
func ClearIssues(app *service.App) error {
return app.Issues.DeleteIssues()
}
func BaseQuestions(interfaceType task.InterfaceType) taskui.Questions {

View File

@@ -23,14 +23,14 @@ Please write your code below this line!
`
type CodingTask struct {
svc *service.Services
app *service.App
}
func NewCodingTask(svc *service.Services) *CodingTask {
return &CodingTask{svc: svc}
func NewCodingTask(app *service.App) *CodingTask {
return &CodingTask{app: app}
}
func (t *CodingTask) Config() task.TaskConfig {
func (t *CodingTask) Config() task.Config {
return BaseConfig().WithStatisticsStoragePath("./.pm/coding-task-stats.json")
}
@@ -59,7 +59,7 @@ func (t *CodingTask) Questions(interfaceType task.InterfaceType) (questions task
}
func (t *CodingTask) Setup(ctx context.Context) error {
if err := ClearIssues(t.svc); err != nil {
if err := ClearIssues(t.app); err != nil {
return err
}
@@ -71,7 +71,6 @@ func (t *CodingTask) Setup(ctx context.Context) error {
}
func (t *CodingTask) Validate(ctx context.Context) (bool, error) {
file, err := os.ReadFile("./code.txt")
if err != nil {
return false, err

View File

@@ -17,14 +17,14 @@ Assign this task to yourself and start creating the issue.
Make sure to fill out all the necessary details, including the title, description, and assignee.`
type CreateIssueTask struct {
svc *service.Services
app *service.App
}
func NewCreateIssueTask(svc *service.Services) *CreateIssueTask {
return &CreateIssueTask{svc: svc}
func NewCreateIssueTask(app *service.App) *CreateIssueTask {
return &CreateIssueTask{app: app}
}
func (t *CreateIssueTask) Config() task.TaskConfig {
func (t *CreateIssueTask) Config() task.Config {
return BaseConfig().WithStatisticsStoragePath("./.pm/create-issue-stats.json")
}
@@ -38,18 +38,18 @@ func (t *CreateIssueTask) Questions(interfaceType task.InterfaceType) taskui.Que
func (t *CreateIssueTask) Setup(ctx context.Context) error {
// Clear existing issues to ensure a clean state for the task
if err := ClearIssues(t.svc); err != nil {
if err := ClearIssues(t.app); err != nil {
return err
}
issue := models.NewBaseIssue().
WithTitle("Create a New Issue").WithDescription(description).Build()
return t.svc.Beads.CreateIssue(ctx, &issue, "")
return t.app.Issues.CreateIssue(ctx, &issue, "")
}
func (t *CreateIssueTask) Validate(ctx context.Context) (bool, error) {
issues, err := t.svc.Beads.SearchIssues(ctx, "", models.IssueFilter{})
issues, err := t.app.Issues.SearchIssues(ctx, "", models.IssueFilter{})
if err != nil {
return false, err
}