package export

import (
	"context"

	globalngv1 "github.com/tidbcloud/tidb-management-service/api/spec/global/nextgen/v1"
	tidbmgmtservicev1 "github.com/tidbcloud/tidb-management-service/api/spec/tidb_mgmt_service/v1"
	"github.com/tidbcloud/tidb-management-service/tidb-mgmt-service/domain/adapter/nextgenglobal"
)

func NewServer(nextgenCli nextgenglobal.NextGenGlobal) tidbmgmtservicev1.ExportServiceServer {
	return &serverImpl{nextgenCli: nextgenCli}
}

type serverImpl struct {
	nextgenCli nextgenglobal.NextGenGlobal
}

func (s serverImpl) ListExports(ctx context.Context, request *globalngv1.ListExportsRequest) (*globalngv1.ListExportsResponse, error) {
	return s.nextgenCli.ListExports(ctx, request)
}

func (s serverImpl) GetExport(ctx context.Context, request *globalngv1.GetExportRequest) (*globalngv1.Export, error) {
	return s.nextgenCli.GetExport(ctx, request)
}

func (s serverImpl) CreateExport(ctx context.Context, request *globalngv1.CreateExportRequest) (*globalngv1.Export, error) {
	return s.nextgenCli.CreateExport(ctx, request)
}

func (s serverImpl) DeleteExport(ctx context.Context, request *globalngv1.DeleteExportRequest) (*globalngv1.Export, error) {
	return s.nextgenCli.DeleteExport(ctx, request)
}

func (s serverImpl) CancelExport(ctx context.Context, request *globalngv1.CancelExportRequest) (*globalngv1.Export, error) {
	return s.nextgenCli.CancelExport(ctx, request)
}
