mirror of
				https://gitlab.com/comunic/comunicmessages
				synced 2025-11-04 12:14:05 +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