package grpcli

import (
	"github.com/tidbcloud/pkgv2/bizerr"
	"github.com/tidbcloud/serverless-service/internal/utils"
	"go.buf.build/protocolbuffers/go/linuxgit/tidbcloud/base"
	"google.golang.org/grpc/status"
)

func wrapGrpcError(err error) bizerr.BizError {
	if err == nil {
		return nil
	}

	gs, _ := status.FromError(err)
	code := utils.GrpcCode2BizCode(gs.Code())
	return bizerr.New(code, "%s", gs.Message())
}

func parseBaseResp(baseResp *base.BaseResp) bizerr.BizError {
	if baseResp != nil && baseResp.ErrCode != 0 {
		return bizerr.Restore(bizerr.ErrCode(baseResp.ErrCode), baseResp.ErrMsg)
	}
	return nil
}
