RpcRequest: create ok and error response builders

This commit is contained in:
Stéphane Lepin 2019-11-15 20:05:07 +01:00
parent d2bb1ddc29
commit a12f1dcb13
2 changed files with 18 additions and 0 deletions

View File

@ -17,6 +17,7 @@ with this program. If not, see <https://www.gnu.org/licenses/>
*/
#include "RpcRequest.h"
#include "RpcResponse.h"
RpcRequest::RpcRequest(const QString& messageId, const QString& methodName, obs_data_t* params) :
_messageId(messageId),
@ -41,6 +42,16 @@ const OBSData RpcRequest::parameters() const
return OBSData(_parameters);
}
const RpcResponse RpcRequest::okResponse(obs_data_t* additionalFields) const
{
return RpcResponse::ok(*this, additionalFields);
}
const RpcResponse RpcRequest::errorResponse(const QString& errorMessage, obs_data_t* additionalFields) const
{
return RpcResponse::fail(*this, errorMessage, additionalFields);
}
const bool RpcRequest::hasField(QString name, obs_data_type expectedFieldType, obs_data_number_type expectedNumberType) const
{
if (!_parameters || name.isEmpty() || name.isNull()) {

View File

@ -22,6 +22,10 @@ with this program. If not, see <https://www.gnu.org/licenses/>
#include <QtCore/QString>
#include "../obs-websocket.h"
// forward declarations
class RpcResponse;
enum ResponseStatus;
class RpcRequest
{
public:
@ -31,6 +35,9 @@ public:
const QString& methodName() const;
const OBSData parameters() const;
const RpcResponse okResponse(obs_data_t* additionalFields = nullptr) const;
const RpcResponse errorResponse(const QString& errorMessage, obs_data_t* additionalFields = nullptr) const;
const bool hasField(QString fieldName, obs_data_type expectedFieldType = OBS_DATA_NULL,
obs_data_number_type expectedNumberType = OBS_DATA_NUM_INVALID) const;
const bool hasBool(QString fieldName) const;