package grpc

import (
	"context"
	"net/http"

	"github.com/tidbcloud/tiinf/errs"
	"go.buf.build/protocolbuffers/go/linuxgit/tidbcloud/base"
)

func formatError(ctx context.Context, err error, baseResp *base.BaseResp) error {
	if err != nil {
		return errs.NewInternalGRPC(getParentFunc(true)+" failed", err)
	}
	if baseResp == nil || baseResp.ErrCode == 0 {
		return nil
	}

	tierr := errs.GetTiErrFromBaseResp(baseResp)
	if tierr.HTTPCode() != http.StatusInternalServerError {
		return tierr
	}

	return errs.ParseBaseResp(ctx, baseResp)
}
