package agent

import (
	"context"
	"encoding/json"
	"net/http"

	"github.com/pingcap/errors"
)

type regionalLightningClient struct {
	AgentClient
	ns          string
	serviceName string
	clusterID   uint64
}

func (c *regionalLightningClient) GetTaskProgress(ctx context.Context) (*TaskProgress, error) {

	respBytes, err := c.FetchResponseWithHeader(ctx, http.MethodPost, "import/progress", ImportProgressParam{
		Namespace: c.ns,
		Svn:       c.serviceName,
		ClusterID: c.clusterID,
	}, nil, nil)
	if err != nil {
		return nil, err
	}

	resp := new(TaskProgress)
	if err = json.Unmarshal(respBytes, resp); err != nil {
		return nil, errors.Trace(err)
	}
	return resp, nil
}
