Fix a small function for http_client in C++ -- 2

Job ID: 37181322

Budget: $10 – $30 USD

I have this old function:

json::value bybitAPI(string_t url, method method, map<string_t, string_t>& data) {
http_client client(BYBIT_ENDPOINT);

// add timestamp parameter to data map
//data[_T("timestamp")] = to_tstring(std::time(0) * 1000);
data[_T("timestamp")] = bybitTIME();
data[_T("api_key")] = _T(BYBIT_API_KEY);
data[_T("recv_window")] = _T("5000");

auto queryString = qsEncode(data);

std::string queryStringA;
#ifdef UNICODE
// convert to ansi string for hmac
queryStringA.assign(queryString.begin(), queryString.end());
#else
queryStringA = queryString;
#endif
auto encodedA = hmacEncode(queryStringA);
string_t encoded;
#ifdef UNICODE
encoded.assign(encodedA.begin(), encodedA.end());
#else
encoded = encodedA;
#endif
queryString += (_T("&sign=") + encoded);
auto json = client.request(method, url + _T("?") + queryString).get().extract_json().get();
#if 0
std::string serializedA;
auto serialized = json.serialize();
serializedA.assign(serialized.begin(), serialized.end());
cout << serializedA << "\n";
#endif
return json;
}

Please fix it so it will work on the latest bybit API without changing the usage of cpprest.

This is the latest reference to use in order to repair the function:

https://bybit-exchange.github.io/docs/v3/intro
Related categories: PHP JavaScript CSS C++ Programming