mirror of
https://github.com/Palakis/obs-websocket.git
synced 2024-08-30 18:12:16 +00:00
WSRequestHandler: add type checks for field test methods
This commit is contained in:
parent
57ce3cf80b
commit
f097b36c2e
@ -226,9 +226,42 @@ HandlerResponse WSRequestHandler::SendResponse(const char* status, obs_data_t* f
|
||||
return response;
|
||||
}
|
||||
|
||||
bool WSRequestHandler::hasField(QString name) {
|
||||
if (!data || name.isEmpty() || name.isNull())
|
||||
bool WSRequestHandler::hasField(QString name, obs_data_type expectedFieldType) {
|
||||
if (!data || name.isEmpty() || name.isNull()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return obs_data_has_user_value(data, name.toUtf8());
|
||||
obs_data_item_t* dataItem = obs_data_item_byname(data, name.toUtf8());
|
||||
if (!dataItem) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (expectedFieldType != OBS_DATA_NULL) {
|
||||
obs_data_type fieldType = obs_data_item_gettype(dataItem);
|
||||
if (fieldType != expectedFieldType) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool WSRequestHandler::hasBool(QString fieldName) {
|
||||
return this->hasField(fieldName, OBS_DATA_BOOLEAN);
|
||||
}
|
||||
|
||||
bool WSRequestHandler::hasString(QString fieldName) {
|
||||
return this->hasField(fieldName, OBS_DATA_STRING);
|
||||
}
|
||||
|
||||
bool WSRequestHandler::hasNumber(QString fieldName) {
|
||||
return this->hasField(fieldName, OBS_DATA_NUMBER);
|
||||
}
|
||||
|
||||
bool WSRequestHandler::hasArray(QString fieldName) {
|
||||
return this->hasField(fieldName, OBS_DATA_ARRAY);
|
||||
}
|
||||
|
||||
bool WSRequestHandler::hasObject(QString fieldName) {
|
||||
return this->hasField(fieldName, OBS_DATA_OBJECT);
|
||||
}
|
||||
|
@ -41,7 +41,13 @@ class WSRequestHandler : public QObject {
|
||||
explicit WSRequestHandler(ConnectionProperties& connProperties);
|
||||
~WSRequestHandler();
|
||||
std::string processIncomingMessage(std::string& textMessage);
|
||||
bool hasField(QString name);
|
||||
|
||||
bool hasField(QString fieldName, obs_data_type expectedFieldType = OBS_DATA_NULL);
|
||||
bool hasBool(QString fieldName);
|
||||
bool hasString(QString fieldName);
|
||||
bool hasNumber(QString fieldName);
|
||||
bool hasArray(QString fieldName);
|
||||
bool hasObject(QString fieldName);
|
||||
|
||||
HandlerResponse SendOKResponse(obs_data_t* additionalFields = nullptr);
|
||||
HandlerResponse SendErrorResponse(QString errorMessage);
|
||||
|
Loading…
x
Reference in New Issue
Block a user