diff --git a/services/rocketchatchannelservice.cpp b/services/rocketchatchannelservice.cpp index bab0ff99270848fb8fd0f8725a6c017400673b0b..cf6f3858dea2a1a0bed584a073462084b2e99cfc 100755 --- a/services/rocketchatchannelservice.cpp +++ b/services/rocketchatchannelservice.cpp @@ -470,40 +470,44 @@ void RocketChatChannelService::searchRoom( const QString &pTerm, const QString & QHash<QString, bool> ids; QHash<QString, bool> names; - if ( data.contains( "rooms" ) ) { - QJsonArray rooms = data["rooms"].toArray(); - - for ( auto room : rooms ) { - QJsonObject roomObj = room.toObject(); - - if ( roomObj.contains( "_id" ) && roomObj.contains( "name" ) && roomObj.contains( "t" ) ) { - QString name = roomObj["name"].toString(); - QString id = roomObj["_id"].toString(); - QString type = roomObj["t"].toString(); - QSharedPointer<RocketChatChannel> ptr( new RocketChatChannel( mServer, mMessageService, id, name, type ) ); - channelList.append( ptr ); - ids[id] = true; - names[name] = true; + if ( pType != "d" ) { + if ( data.contains( "rooms" ) ) { + QJsonArray rooms = data["rooms"].toArray(); + + for ( auto room : rooms ) { + QJsonObject roomObj = room.toObject(); + + if ( roomObj.contains( "_id" ) && roomObj.contains( "name" ) && roomObj.contains( "t" ) ) { + QString name = roomObj["name"].toString(); + QString id = roomObj["_id"].toString(); + QString type = roomObj["t"].toString(); + QSharedPointer<RocketChatChannel> ptr( new RocketChatChannel( mServer, mMessageService, id, name, type ) ); + channelList.append( ptr ); + ids[id] = true; + names[name] = true; + } } } } - if ( data.contains( "users" ) ) { - QJsonArray rooms = data["users"].toArray(); - - for ( auto room : rooms ) { - QJsonObject roomObj = room.toObject(); - - if ( roomObj.contains( "_id" ) && roomObj.contains( "name" ) && roomObj.contains( "username" ) ) { - QString name = roomObj["name"].toString(); - QString id = roomObj["_id"].toString(); - QString type = "d"; - QString username = roomObj["username"].toString(); - QSharedPointer<RocketChatChannel> ptr( new RocketChatChannel( mServer, mMessageService, id, name, type ) ); - ptr->setUsername( username ); - channelList.append( ptr ); - ids[id] = true; - names[name] = true; + if ( pType == "d" || pType.isEmpty() ) { + if ( data.contains( "users" ) ) { + QJsonArray rooms = data["users"].toArray(); + + for ( auto room : rooms ) { + QJsonObject roomObj = room.toObject(); + + if ( roomObj.contains( "_id" ) && roomObj.contains( "name" ) && roomObj.contains( "username" ) ) { + QString name = roomObj["name"].toString(); + QString id = roomObj["_id"].toString(); + QString type = "d"; + QString username = roomObj["username"].toString(); + QSharedPointer<RocketChatChannel> ptr( new RocketChatChannel( mServer, mMessageService, id, name, type ) ); + ptr->setUsername( username ); + channelList.append( ptr ); + ids[id] = true; + names[name] = true; + } } } }