WSRequestHandler: add int and double type check methods

This commit is contained in:
Stéphane Lepin 2019-08-02 21:52:50 +02:00
parent f097b36c2e
commit fb0d13a171
2 changed files with 23 additions and 5 deletions

View File

@ -226,7 +226,7 @@ HandlerResponse WSRequestHandler::SendResponse(const char* status, obs_data_t* f
return response; return response;
} }
bool WSRequestHandler::hasField(QString name, obs_data_type expectedFieldType) { bool WSRequestHandler::hasField(QString name, obs_data_type expectedFieldType, obs_data_number_type expectedNumberType) {
if (!data || name.isEmpty() || name.isNull()) { if (!data || name.isEmpty() || name.isNull()) {
return false; return false;
} }
@ -241,6 +241,13 @@ bool WSRequestHandler::hasField(QString name, obs_data_type expectedFieldType) {
if (fieldType != expectedFieldType) { if (fieldType != expectedFieldType) {
return false; return false;
} }
if (fieldType == OBS_DATA_NUMBER && expectedNumberType != OBS_DATA_NUM_INVALID) {
obs_data_number_type numberType = obs_data_item_numtype(dataItem);
if (numberType != expectedNumberType) {
return false;
}
}
} }
return true; return true;
@ -254,8 +261,16 @@ bool WSRequestHandler::hasString(QString fieldName) {
return this->hasField(fieldName, OBS_DATA_STRING); return this->hasField(fieldName, OBS_DATA_STRING);
} }
bool WSRequestHandler::hasNumber(QString fieldName) { bool WSRequestHandler::hasNumber(QString fieldName, obs_data_number_type expectedNumberType) {
return this->hasField(fieldName, OBS_DATA_NUMBER); return this->hasField(fieldName, OBS_DATA_NUMBER, expectedNumberType);
}
bool WSRequestHandler::hasInteger(QString fieldName) {
return this->hasNumber(fieldName, OBS_DATA_NUM_INT);
}
bool WSRequestHandler::hasDouble(QString fieldName) {
return this->hasNumber(fieldName, OBS_DATA_NUM_DOUBLE);
} }
bool WSRequestHandler::hasArray(QString fieldName) { bool WSRequestHandler::hasArray(QString fieldName) {

View File

@ -42,10 +42,13 @@ class WSRequestHandler : public QObject {
~WSRequestHandler(); ~WSRequestHandler();
std::string processIncomingMessage(std::string& textMessage); std::string processIncomingMessage(std::string& textMessage);
bool hasField(QString fieldName, obs_data_type expectedFieldType = OBS_DATA_NULL); bool hasField(QString fieldName, obs_data_type expectedFieldType = OBS_DATA_NULL,
obs_data_number_type expectedNumberType = OBS_DATA_NUM_INVALID);
bool hasBool(QString fieldName); bool hasBool(QString fieldName);
bool hasString(QString fieldName); bool hasString(QString fieldName);
bool hasNumber(QString fieldName); bool hasNumber(QString fieldName, obs_data_number_type expectedNumberType = OBS_DATA_NUM_INVALID);
bool hasInteger(QString fieldName);
bool hasDouble(QString fieldName);
bool hasArray(QString fieldName); bool hasArray(QString fieldName);
bool hasObject(QString fieldName); bool hasObject(QString fieldName);