QString Toxme::createAddress(ExecCode &code, QString server, ToxId id, QString address, bool keepPrivate, QString bio) { int privacy = keepPrivate ? 0 : 2; // JSON injection ? bio.replace('\\',"\\\\"); bio.replace('"',"\""); address.replace('\\',"\\\\"); address.replace('"',"\""); bio = bio.trimmed(); address = address.trimmed(); server = server.trimmed(); if (!server.contains("://")) server = "https://" + server; const QString payload{"{\"tox_id\":\""+id.toString()+"\"," "\"name\":\""+address+"\"," "\"privacy\":"+QString().setNum(privacy)+"," "\"bio\":\""+bio+"\"," "\"timestamp\":"+QString().setNum(time(0))+"}"}; QString pubkeyUrl = server + "/pk"; QString apiUrl = server + "/api"; QNetworkReply::NetworkError error = QNetworkReply::NoError; QByteArray encrypted = prepareEncryptedJson(pubkeyUrl, 1, payload); QByteArray response = makeJsonRequest(apiUrl, encrypted, error); code = extractError(response); if ((code != Ok && code != Updated) || error != QNetworkReply::NoError) return QString(); return getPass(response, code); }
int Toxme::deleteAddress(QString server, ToxId id) { const QString payload{"{\"public_key\":\""+id.toString().left(64)+"\"," "\"timestamp\":"+QString().setNum(time(0))+"}"}; server = server.trimmed(); if (!server.contains("://")) server = "https://" + server; QString pubkeyUrl = server + "/pk"; QString apiUrl = server + "/api"; QNetworkReply::NetworkError error = QNetworkReply::NoError; QByteArray response = makeJsonRequest(apiUrl, prepareEncryptedJson(pubkeyUrl, 2, payload), error); return extractError(response); }