mirror of
https://gitlab.com/comunic/comunicmessages
synced 2025-06-20 08:55:17 +00:00
Can send image to conversations
This commit is contained in:
@ -30,16 +30,49 @@ void APIHelper::execute(APIRequest *request)
|
||||
request->addString("userToken2", tokens.token2());
|
||||
}
|
||||
|
||||
//Prepare request
|
||||
//See this SO question to learn more : https://stackoverflow.com/questions/2599423
|
||||
QUrlQuery queryData;
|
||||
for(APIRequestParameter param : request->arguments())
|
||||
queryData.addQueryItem(param.name(), param.value());
|
||||
QNetworkReply *reply = nullptr;
|
||||
|
||||
//Send request
|
||||
QNetworkRequest networkRequest((QUrl(requestURL)));
|
||||
networkRequest.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");
|
||||
QNetworkReply *reply = mNetworkManager.post(networkRequest, queryData.toString(QUrl::FullyEncoded).toUtf8());
|
||||
//Prepare request
|
||||
//Check if the request contains files or not
|
||||
if(!request->hasParts()){
|
||||
|
||||
//See this SO question to learn more : https://stackoverflow.com/questions/2599423
|
||||
QUrlQuery queryData;
|
||||
for(APIRequestParameter param : request->arguments())
|
||||
queryData.addQueryItem(param.name(), param.value());
|
||||
|
||||
//Send request
|
||||
QNetworkRequest networkRequest((QUrl(requestURL)));
|
||||
networkRequest.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");
|
||||
reply = mNetworkManager.post(networkRequest, queryData.toString(QUrl::FullyEncoded).toUtf8());
|
||||
|
||||
}
|
||||
|
||||
//Multiple entries request
|
||||
else {
|
||||
|
||||
QHttpMultiPart *multiPart = new QHttpMultiPart(QHttpMultiPart::FormDataType);
|
||||
|
||||
//Process the list of "normal" arguments
|
||||
for(APIRequestParameter param : request->arguments()){
|
||||
QHttpPart part;
|
||||
part.setHeader(QNetworkRequest::ContentDispositionHeader, "form-data; name=\""+param.name()+"\"");
|
||||
part.setBody(param.value().toStdString().c_str());
|
||||
multiPart->append(part);
|
||||
}
|
||||
|
||||
//Append all the other parts
|
||||
for(int i = 0; i < request->parts()->size(); i++)
|
||||
multiPart->append(request->parts()->at(i));
|
||||
|
||||
//Send request
|
||||
QNetworkRequest networkRequest((QUrl(requestURL)));
|
||||
reply = mNetworkManager.post(networkRequest, multiPart);
|
||||
|
||||
//Delete multipart as soon as the request ends
|
||||
multiPart->setParent(reply);
|
||||
|
||||
}
|
||||
|
||||
//Make connections
|
||||
connect(reply, &QNetworkReply::finished, this, &APIHelper::finished);
|
||||
|
@ -4,6 +4,7 @@
|
||||
#include "apihelper.h"
|
||||
#include "conversationhelper.h"
|
||||
#include "../data/apirequest.h"
|
||||
#include "../utils/filesutils.h"
|
||||
|
||||
ConversationHelper::ConversationHelper(QObject *parent) : QObject(parent)
|
||||
{
|
||||
@ -17,6 +18,14 @@ void ConversationHelper::sendMessage(const NewConversationMessage &message)
|
||||
request->addInt("conversationID", message.iDConversation());
|
||||
request->addString("message", message.message());
|
||||
|
||||
//Add image (if any)
|
||||
if(message.hasImage()){
|
||||
|
||||
//Add image to request
|
||||
request->addFileFromPath("image", message.imagePath(), FilesUtils::GetFileMimeType(message.imagePath()));
|
||||
|
||||
}
|
||||
|
||||
connect(request, &APIRequest::finished, this, &ConversationHelper::sendMessageFinished);
|
||||
mAPIHelper->execute(request);
|
||||
}
|
||||
|
Reference in New Issue
Block a user