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) { var data types.TaskStatusRequest err := json.Unmarshal(*req.Params, &data) if err != nil { return nil, fmt.Errorf("Unmarshal Task Status Request: %w", err) } t, err := task.Get(data) if err != nil { return nil, fmt.Errorf("Get Task Status: %w", err) } return types.TaskStatus{ Task: *t, }, 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 }