Can send messages from conversations

This commit is contained in:
2018-12-12 21:28:48 +01:00
committed by Pierre HUBERT
parent a0eaf69c0e
commit 58b4afe653
8 changed files with 241 additions and 3 deletions

View File

@ -0,0 +1,33 @@
#include "apihelper.h"
#include "conversationhelper.h"
#include "../data/apirequest.h"
ConversationHelper::ConversationHelper(QObject *parent) : QObject(parent)
{
mAPIHelper = new APIHelper(this);
}
void ConversationHelper::sendMessage(const NewConversationMessage &message)
{
APIRequest *request = new APIRequest;
request->setURI("conversations/sendMessage");
request->addInt("conversationID", message.iDConversation());
request->addString("message", message.message());
connect(request, &APIRequest::finished, this, &ConversationHelper::sendMessageFinished);
mAPIHelper->execute(request);
}
void ConversationHelper::sendMessageFinished(int code)
{
//Delete sender
qobject_cast<APIRequest *>(sender())->deleteLater();
if(code != 200){
emit sendMessageCallback(false);
return;
}
//Success
emit sendMessageCallback(true);
}

View File

@ -0,0 +1,61 @@
/**
* Conversation helper
*
* This class is an interface between the server
* and the conversations widgets
*
* @author Pierre HUBERT
*/
#ifndef CONVERSATIONHELPER_H
#define CONVERSATIONHELPER_H
#include <QObject>
#include "../data/newconversationmessage.h"
#include "../data/apirequest.h"
class APIHelper;
class ConversationHelper : public QObject
{
Q_OBJECT
public:
explicit ConversationHelper(QObject *parent = nullptr);
/**
* Send a message to the server
*
* @param message Information about the message to send
*/
void sendMessage(const NewConversationMessage &message);
signals:
/**
* This signal is emitted when we have got the result of a create message
* attempt
*
* @param success TRUE if the operation is a success / FALSE
*/
void sendMessageCallback(bool success);
public slots:
private slots:
/**
* Send message callback
*
* @param code The code of the error
* @param & Server response (useless in this case)
*/
void sendMessageFinished(int code);
private:
//Private fields
APIHelper *mAPIHelper;
};
#endif // CONVERSATIONHELPER_H