package main

import (
	"fmt"

	"github.com/tidbcloud/tiinf/errs"
)

func ConversionBetweenTiErrAndBaseResp() {
	// Server Logic: convert it to baseResp if an error occurs.
	// 1. New a tiErr
	serverErr := errs.NewBadRequest("test request", nil)
	// 1. Store it to baseResp and return it to client.
	baseResp := errs.NewBaseRespFromTiErr(serverErr)

	fmt.Printf("BaseResp is %v \n", baseResp)

	// Client Logic: revert it to tiErr if baseResp is not nil.
	// 1. Parse the error info from baseResp
	cliErr := errs.GetTiErrFromBaseResp(baseResp)

	if cliErr.BizCode() == serverErr.BizCode() && cliErr.HTTPCode() == serverErr.HTTPCode() && cliErr.ErrMsg() == serverErr.ErrMsg() {
		fmt.Println("cliErr is equal to serverErr")
	}
}
func main() {
	ConversionBetweenTiErrAndBaseResp()
}
