package integration

import (
	"context"

	"github.com/pingcap/errcode"
	"github.com/pingcap/errors"
	consolev1 "github.com/tidbcloud/metrics-integration/global/api/integration/v1"
	"github.com/tidbcloud/metrics-integration/global/internal/domain/controller/integration"
	"github.com/tidbcloud/metrics-integration/global/pkg/cvt"
)

func (i integrationServiceServer) ValidateDatadogAPIKey(ctx context.Context, req *consolev1.ValidateDatadogAPIKeyRequest) (*consolev1.ValidateDatadogAPIKeyResp, error) {
	v, err := integration.ValidateDatadogAPIKey(ctx, req.DatadogApiKey, cvt.DatadogSiteConsoleAPIToDB(req.DatadogSite))
	if err != nil {
		err = errcode.NewInternalErr(errors.Annotate(err, "validate datadog api key failed"))
		return nil, err
	}
	resp := &consolev1.ValidateDatadogAPIKeyResp{
		OrgId: req.OrgId,
		Valid: v,
	}
	return resp, nil
}
