From e6dbc9bfdf71ae9b4872f0f8f8c85a014c155a3f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Lepin?= <stephane.lepin@gmail.com> Date: Fri, 15 Nov 2019 19:24:26 +0100 Subject: [PATCH] WSRequestHandler(General): fixes --- src/WSRequestHandler_General.cpp | 82 ++++++++++++++++---------------- 1 file changed, 42 insertions(+), 40 deletions(-) diff --git a/src/WSRequestHandler_General.cpp b/src/WSRequestHandler_General.cpp index ecb3f48f..9b864af9 100644 --- a/src/WSRequestHandler_General.cpp +++ b/src/WSRequestHandler_General.cpp @@ -66,10 +66,10 @@ const char *describe_scale_type(int scale) { * @category general * @since 0.3 */ -HandlerResponse WSRequestHandler::HandleGetVersion(WSRequestHandler* req) { +RpcResponse WSRequestHandler::HandleGetVersion(const RpcRequest& request) { QString obsVersion = Utils::OBSVersionString(); - QList<QString> names = req->messageMap.keys(); + QList<QString> names = messageMap.keys(); names.sort(Qt::CaseInsensitive); // (Palakis) OBS' data arrays only support object arrays, so I improvised. @@ -85,7 +85,7 @@ HandlerResponse WSRequestHandler::HandleGetVersion(WSRequestHandler* req) { obs_data_set_string(data, "obs-studio-version", obsVersion.toUtf8()); obs_data_set_string(data, "available-requests", requests.toUtf8()); - return req->SendOKResponse(data); + return RpcResponse::ok(request, data); } /** @@ -101,7 +101,7 @@ HandlerResponse WSRequestHandler::HandleGetVersion(WSRequestHandler* req) { * @category general * @since 0.3 */ -HandlerResponse WSRequestHandler::HandleGetAuthRequired(WSRequestHandler* req) { +RpcResponse WSRequestHandler::HandleGetAuthRequired(const RpcRequest& request) { bool authRequired = GetConfig()->AuthRequired; OBSDataAutoRelease data = obs_data_create(); @@ -115,7 +115,7 @@ HandlerResponse WSRequestHandler::HandleGetAuthRequired(WSRequestHandler* req) { config->Salt.toUtf8()); } - return req->SendOKResponse(data); + return RpcResponse::ok(request, data); } /** @@ -128,26 +128,26 @@ HandlerResponse WSRequestHandler::HandleGetAuthRequired(WSRequestHandler* req) { * @category general * @since 0.3 */ -HandlerResponse WSRequestHandler::HandleAuthenticate(WSRequestHandler* req) { - if (!req->hasField("auth")) { - return req->SendErrorResponse("missing request parameters"); +RpcResponse WSRequestHandler::HandleAuthenticate(const RpcRequest& request) { + if (!request.hasField("auth")) { + return RpcResponse::fail(request, "missing request parameters"); } - if (req->_connProperties.isAuthenticated()) { - return req->SendErrorResponse("already authenticated"); + if (_connProperties.isAuthenticated()) { + return RpcResponse::fail(request, "already authenticated"); } - QString auth = obs_data_get_string(req->data, "auth"); + QString auth = obs_data_get_string(request.parameters(), "auth"); if (auth.isEmpty()) { - return req->SendErrorResponse("auth not specified!"); + return RpcResponse::fail(request, "auth not specified!"); } if (GetConfig()->CheckAuth(auth) == false) { - return req->SendErrorResponse("Authentication Failed."); + return RpcResponse::fail(request, "Authentication Failed."); } - req->_connProperties.setAuthenticated(true); - return req->SendOKResponse(); + _connProperties.setAuthenticated(true); + return RpcResponse::ok(request); } /** @@ -160,17 +160,17 @@ HandlerResponse WSRequestHandler::HandleAuthenticate(WSRequestHandler* req) { * @category general * @since 4.3.0 */ -HandlerResponse WSRequestHandler::HandleSetHeartbeat(WSRequestHandler* req) { - if (!req->hasField("enable")) { - return req->SendErrorResponse("Heartbeat <enable> parameter missing"); +RpcResponse WSRequestHandler::HandleSetHeartbeat(const RpcRequest& request) { + if (!request.hasField("enable")) { + return RpcResponse::fail(request, "Heartbeat <enable> parameter missing"); } auto events = GetEventsSystem(); - events->HeartbeatIsActive = obs_data_get_bool(req->data, "enable"); + events->HeartbeatIsActive = obs_data_get_bool(request.parameters(), "enable"); OBSDataAutoRelease response = obs_data_create(); obs_data_set_bool(response, "enable", events->HeartbeatIsActive); - return req->SendOKResponse(response); + return RpcResponse::ok(request, response); } /** @@ -183,18 +183,18 @@ HandlerResponse WSRequestHandler::HandleSetHeartbeat(WSRequestHandler* req) { * @category general * @since 4.3.0 */ -HandlerResponse WSRequestHandler::HandleSetFilenameFormatting(WSRequestHandler* req) { - if (!req->hasField("filename-formatting")) { - return req->SendErrorResponse("<filename-formatting> parameter missing"); +RpcResponse WSRequestHandler::HandleSetFilenameFormatting(const RpcRequest& request) { + if (!request.hasField("filename-formatting")) { + return RpcResponse::fail(request, "<filename-formatting> parameter missing"); } - QString filenameFormatting = obs_data_get_string(req->data, "filename-formatting"); + QString filenameFormatting = obs_data_get_string(request.parameters(), "filename-formatting"); if (filenameFormatting.isEmpty()) { - return req->SendErrorResponse("invalid request parameters"); + return RpcResponse::fail(request, "invalid request parameters"); } Utils::SetFilenameFormatting(filenameFormatting.toUtf8()); - return req->SendOKResponse(); + return RpcResponse::ok(request); } /** @@ -207,10 +207,10 @@ HandlerResponse WSRequestHandler::HandleSetFilenameFormatting(WSRequestHandler* * @category general * @since 4.3.0 */ -HandlerResponse WSRequestHandler::HandleGetFilenameFormatting(WSRequestHandler* req) { +RpcResponse WSRequestHandler::HandleGetFilenameFormatting(const RpcRequest& request) { OBSDataAutoRelease response = obs_data_create(); obs_data_set_string(response, "filename-formatting", Utils::GetFilenameFormatting()); - return req->SendOKResponse(response); + return RpcResponse::ok(request, response); } /** @@ -223,12 +223,12 @@ HandlerResponse WSRequestHandler::HandleGetFilenameFormatting(WSRequestHandler* * @category general * @since 4.6.0 */ -HandlerResponse WSRequestHandler::HandleGetStats(WSRequestHandler* req) { +RpcResponse WSRequestHandler::HandleGetStats(const RpcRequest& request) { OBSDataAutoRelease stats = GetEventsSystem()->GetStats(); OBSDataAutoRelease response = obs_data_create(); obs_data_set_obj(response, "stats", stats); - return req->SendOKResponse(response); + return RpcResponse::ok(request, response); } /** @@ -242,26 +242,26 @@ HandlerResponse WSRequestHandler::HandleGetStats(WSRequestHandler* req) { * @category general * @since 4.7.0 */ -HandlerResponse WSRequestHandler::HandleBroadcastCustomMessage(WSRequestHandler* req) { - if (!req->hasField("realm") || !req->hasField("data")) { - return req->SendErrorResponse("missing request parameters"); +RpcResponse WSRequestHandler::HandleBroadcastCustomMessage(const RpcRequest& request) { + if (!request.hasField("realm") || !request.hasField("data")) { + return RpcResponse::fail(request, "missing request parameters"); } - QString realm = obs_data_get_string(req->data, "realm"); - OBSDataAutoRelease data = obs_data_get_obj(req->data, "data"); + QString realm = obs_data_get_string(request.parameters(), "realm"); + OBSDataAutoRelease data = obs_data_get_obj(request.parameters(), "data"); if (realm.isEmpty()) { - return req->SendErrorResponse("realm not specified!"); + return RpcResponse::fail(request, "realm not specified!"); } if (!data) { - return req->SendErrorResponse("data not specified!"); + return RpcResponse::fail(request, "data not specified!"); } auto events = GetEventsSystem(); events->OnBroadcastCustomMessage(realm, data); - return req->SendOKResponse(); + return RpcResponse::ok(request); } @@ -283,9 +283,10 @@ HandlerResponse WSRequestHandler::HandleBroadcastCustomMessage(WSRequestHandler* * @category general * @since 4.6.0 */ -HandlerResponse WSRequestHandler::HandleGetVideoInfo(WSRequestHandler* req) { +RpcResponse WSRequestHandler::HandleGetVideoInfo(const RpcRequest& request) { obs_video_info ovi; obs_get_video_info(&ovi); + OBSDataAutoRelease response = obs_data_create(); obs_data_set_int(response, "baseWidth", ovi.base_width); obs_data_set_int(response, "baseHeight", ovi.base_height); @@ -296,5 +297,6 @@ HandlerResponse WSRequestHandler::HandleGetVideoInfo(WSRequestHandler* req) { obs_data_set_string(response, "colorSpace", describe_color_space(ovi.colorspace)); obs_data_set_string(response, "colorRange", describe_color_range(ovi.range)); obs_data_set_string(response, "scaleType", describe_scale_type(ovi.scale_type)); - return req->SendOKResponse(response); + + return RpcResponse::ok(request, response); }