package operation

import (
	"context"
	"fmt"

	opent "github.com/tidbcloud/devops/entity/operation"
)

func (s *svc) ListActions(ctx context.Context) ([]*opent.ActionMetadata, error) {
	results := make([]*opent.ActionMetadata, 0)
	for _, act := range s.actRegistry {
		meta := act.Metadata()
		results = append(results, &meta)
	}

	return results, nil
}

func (s *svc) GetAction(ctx context.Context, name opent.ActionName) (*opent.ActionMetadata, error) {
	act, exist := s.actRegistry.Get(name)
	if !exist {
		return nil, fmt.Errorf("unknown action %s", name)
	}
	meta := act.Metadata()

	return &meta, nil
}
