Merge pull request #1188 from krunal1313/stopword_support

refactor
This commit is contained in:
Kishore Nallan 2023-08-29 10:34:57 +05:30 committed by GitHub
commit 0cd97170ac
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 13 additions and 26 deletions

View File

@ -1902,9 +1902,9 @@ bool get_stopwords(const std::shared_ptr<http_req>& req, const std::shared_ptr<h
for(const auto& stopwords_kv: stopwords) {
nlohmann::json stopword;
stopword["name"] = stopwords_kv.first;
stopword["id"] = stopwords_kv.first;
for(const auto& val : stopwords_kv.second) {
stopword["value"].push_back(val);
stopword["stopwords"].push_back(val);
}
res_json["stopwords"].push_back(stopword);
}
@ -1914,7 +1914,7 @@ bool get_stopwords(const std::shared_ptr<http_req>& req, const std::shared_ptr<h
}
bool get_stopword(const std::shared_ptr<http_req>& req, const std::shared_ptr<http_res>& res) {
const std::string & stopword_name = req->params["stopword_name"];
const std::string & stopword_name = req->params["name"];
StopwordsManager& stopwordManager = StopwordsManager::get_instance();
spp::sparse_hash_set<std::string> stopwords;
@ -1980,9 +1980,9 @@ bool del_stopword(const std::shared_ptr<http_req>& req, const std::shared_ptr<ht
}
nlohmann::json res_json;
res_json["name"] = stopword_name;
res_json["id"] = stopword_name;
for(const auto& stopword : stopwords) {
res_json["value"].push_back(stopword);
res_json["stopwords"].push_back(stopword);
}
res->set_200(res_json.dump());

View File

@ -28,6 +28,7 @@ Option<bool> StopwordsManager::upsert_stopword(const std::string& stopword_name,
const char* STOPWORD_VALUES = "stopwords";
const char* STOPWORD_LOCALE = "locale";
std::string locale = "";
if(stopwords_json.count(STOPWORD_VALUES) == 0){
return Option<bool>(400, (std::string("Parameter `") + STOPWORD_VALUES + "` is required"));
@ -37,12 +38,11 @@ Option<bool> StopwordsManager::upsert_stopword(const std::string& stopword_name,
return Option<bool>(400, (std::string("Parameter `") + STOPWORD_VALUES + "` is required as string array value"));
}
if(stopwords_json.count(STOPWORD_LOCALE) == 0) {
return Option<bool>(400, (std::string("Parameter `") + STOPWORD_LOCALE + "` is required"));
}
if(!stopwords_json[STOPWORD_LOCALE].is_string()) {
return Option<bool>(400, (std::string("Parameter `") + STOPWORD_LOCALE + "` is required as string value"));
if(stopwords_json.count(STOPWORD_LOCALE) != 0) {
if (!stopwords_json[STOPWORD_LOCALE].is_string()) {
return Option<bool>(400, (std::string("Parameter `") + STOPWORD_LOCALE + "` is required as string value"));
}
locale = stopwords_json[STOPWORD_LOCALE];
}
if(write_to_store) {
@ -55,7 +55,6 @@ Option<bool> StopwordsManager::upsert_stopword(const std::string& stopword_name,
std::vector<std::string> tokens;
spp::sparse_hash_set<std::string> stopwords_set;
const auto& stopwords = stopwords_json[STOPWORD_VALUES];
const auto& locale = stopwords_json[STOPWORD_LOCALE];
for (const auto &stopword: stopwords.items()) {
const auto& val = stopword.value().get<std::string>();

View File

@ -328,20 +328,8 @@ TEST_F(StopwordsManagerTest, StopwordsValidation) {
std::shared_ptr<http_req> req = std::make_shared<http_req>();
std::shared_ptr<http_res> res = std::make_shared<http_res>(nullptr);
auto stopword_value = R"(
{"stopwords": ["america", "europe"]}
)"_json;
req->params["collection"] = "coll1";
req->params["name"] = "continents";
req->body = stopword_value.dump();
auto result = put_upsert_stopword(req, res);
ASSERT_EQ(400, res->status_code);
ASSERT_EQ("{\"message\": \"Parameter `locale` is required\"}", res->body);
//with a typo
stopword_value = R"(
auto stopword_value = R"(
{"stopword": ["america", "europe"], "locale": "en"}
)"_json;
@ -349,7 +337,7 @@ TEST_F(StopwordsManagerTest, StopwordsValidation) {
req->params["name"] = "continents";
req->body = stopword_value.dump();
result = put_upsert_stopword(req, res);
auto result = put_upsert_stopword(req, res);
ASSERT_EQ(400, res->status_code);
ASSERT_STREQ("{\"message\": \"Parameter `stopwords` is required\"}", res->body.c_str());