package mysql

import (
	"context"
	"fmt"
)

func NewLocal() Invoker {
	return &localInvoker{}
}

type localInvoker struct{}

func (in *localInvoker) Invoke(ctx context.Context, ac *Action) error {
	switch ac.Command {
	case CommandPing:
		return Ping(ctx, ac.DataSourceName, ac.TLS)
	case CommandCheckConn:
		return CheckConn(ctx, ac.DataSourceName, ac.TLS, ac.Timeout)
	}

	return fmt.Errorf("unsupported command %v", ac.Command)
}
