diff --git a/src/flight/query.cpp b/src/flight/query.cpp index 56034e9..4baeb67 100644 --- a/src/flight/query.cpp +++ b/src/flight/query.cpp @@ -46,11 +46,15 @@ std::string assemble(const std::vector>& cla // --------------------------------------------------------------------------- QueryTopicBuilder& QueryTopicBuilder::withName(const std::string& name) { - clauses_.emplace_back("locator", opEq(name)); + // The server's name/identity filter key is "name". It was "locator" until + // mosaicod #565 renamed it; a stale "locator" key silently matches nothing + // against current servers. (The streaming ticket descriptor still uses + // "resource_locator" — only the query filter key changed.) + clauses_.emplace_back("name", opEq(name)); return *this; } QueryTopicBuilder& QueryTopicBuilder::withNameMatch(const std::string& partial) { - clauses_.emplace_back("locator", opMatch(partial)); + clauses_.emplace_back("name", opMatch(partial)); return *this; } QueryTopicBuilder& QueryTopicBuilder::withOntologyTag(const std::string& tag) { @@ -74,11 +78,13 @@ QueryFilter QueryTopicBuilder::build() const { // --------------------------------------------------------------------------- QuerySequenceBuilder& QuerySequenceBuilder::withName(const std::string& name) { - clauses_.emplace_back("locator", opEq(name)); + // See QueryTopicBuilder::withName — server key renamed "locator" -> "name" + // (mosaicod #565). + clauses_.emplace_back("name", opEq(name)); return *this; } QuerySequenceBuilder& QuerySequenceBuilder::withNameMatch(const std::string& partial) { - clauses_.emplace_back("locator", opMatch(partial)); + clauses_.emplace_back("name", opMatch(partial)); return *this; } QuerySequenceBuilder& QuerySequenceBuilder::withCreatedAfter(int64_t ns) { diff --git a/src/flight/query.hpp b/src/flight/query.hpp index a4f0bc6..ee4508c 100644 --- a/src/flight/query.hpp +++ b/src/flight/query.hpp @@ -18,7 +18,7 @@ namespace mosaico { // `body_json` is a pre-rendered JSON object (no outer braces quoting issues). struct QueryFilter { std::string name; - std::string body_json; // serialized object, e.g. {"locator":{"$eq":"x"}} + std::string body_json; // serialized object, e.g. {"name":{"$eq":"x"}} }; // Per-topic result entry. @@ -41,9 +41,9 @@ struct QueryResponse { // Fluent builder for QueryTopic filters. class QueryTopicBuilder { public: - // Exact match: {"locator": {"$eq": ""}} + // Exact match: {"name": {"$eq": ""}} QueryTopicBuilder& withName(const std::string& name); - // Partial match: {"locator": {"$match": ""}} + // Partial match: {"name": {"$match": ""}} QueryTopicBuilder& withNameMatch(const std::string& partial); // Exact tag: {"ontology_tag": {"$eq": ""}} QueryTopicBuilder& withOntologyTag(const std::string& tag);