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

@@ -6,21 +6,21 @@ import (
"github.com/LazyBachelor/LazyPM/internal/service"
)
var registry = make(map[string]func(*service.Services) Tasker)
var registry = make(map[string]func(*service.App) Tasker)
func Register(name string, constructor func(*service.Services) Tasker) {
func Register(name string, constructor func(*service.App) Tasker) {
if _, exists := registry[name]; exists {
panic(fmt.Sprintf("task %q already registered", name))
}
registry[name] = constructor
}
func Get(name string, svc *service.Services) (Tasker, error) {
func Get(name string, app *service.App) (Tasker, error) {
constructor, ok := registry[name]
if !ok {
return nil, fmt.Errorf("task %q not found", name)
}
return constructor(svc), nil
return constructor(app), nil
}
func List() []string {

View File

@@ -94,14 +94,13 @@ func startValidationLoop(ctx context.Context, t Tasker, feedbackChan chan Valida
feedbackChan <- feedback
doneChan <- true
return
} else {
if err != nil {
feedback.Message = err.Error()
} else {
feedback.Message = "Task not yet complete"
}
feedbackChan <- feedback
}
if err != nil {
feedback.Message = err.Error()
} else {
feedback.Message = "Task not yet complete"
}
feedbackChan <- feedback
case <-quitChan:
return
case <-ctx.Done():

View File

@@ -8,15 +8,15 @@ import (
taskui "github.com/LazyBachelor/LazyPM/pkg/task/ui"
)
type TaskConfig = service.Config
type Config = service.Config
type InterfaceType string
type Interface interface {
Run(context.Context, TaskConfig) error
Run(context.Context, Config) error
}
type Tasker interface {
Config() TaskConfig
Config() Config
Details() taskui.TaskDetails
Questions(InterfaceType) taskui.Questions
Setup(context.Context) error