package worker import ( "context" "encoding/json" "fmt" "git.lastassault.de/speatzle/morffix/rpc" "git.lastassault.de/speatzle/morffix/task" "git.lastassault.de/speatzle/morffix/types" ) func init() { rpcServer.RegisterMethod("task-start", taskStart) rpcServer.RegisterMethod("task-status", taskStatus) rpcServer.RegisterMethod("task-delete", taskDelete) } func taskStart(ctx context.Context, req rpc.Request) (any, error) { var data types.TaskStart err := json.Unmarshal(*req.Params, &data) if err != nil { return nil, fmt.Errorf("Unmarshal Task Start Params: %w", err) } err = task.StartTask(conf, data) if err != nil { return nil, fmt.Errorf("Starting Task: %w", err) } return nil, nil } func taskStatus(ctx context.Context, req rpc.Request) (any, error) { return types.TaskStatus{ Tasks: task.Get(), }, nil } func taskDelete(ctx context.Context, req rpc.Request) (any, error) { var data int err := json.Unmarshal(*req.Params, &data) if err != nil { return nil, fmt.Errorf("Unmarshal Task Delete ID: %w", err) } err = task.DeleteTask(data) if err != nil { return nil, fmt.Errorf("Deleting Task: %w", err) } return nil, nil }