Skip to content

Commit 7243b0c

Browse files
committed
Synchronize example and OOBT code with README and remove redundant helper wrappers.
1 parent ba0c6fe commit 7243b0c

5 files changed

Lines changed: 89 additions & 150 deletions

File tree

‎example/google_example.cpp‎

Lines changed: 44 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -1,51 +1,48 @@
1-
#include <cstdint>
21
#include <iostream>
3-
#include <memory>
4-
#include <string>
5-
#include <curl/curl.h>
2+
#include <map>
3+
#include <rapidjson/document.h>
4+
#include <rapidjson/prettywriter.h>
5+
#include <rapidjson/stringbuffer.h>
66
#include <serpapi.hpp>
7-
#include <helper.hpp>
8-
9-
#include "rapidjson/document.h"
10-
#include "rapidjson/writer.h"
11-
#include "rapidjson/stringbuffer.h"
12-
#include "rapidjson/prettywriter.h"
13-
#include "rapidjson/pointer.h"
14-
15-
using namespace rapidjson;
16-
using namespace std;
17-
18-
// RapidJSON parser documentation is available: https://rapidjson.org
19-
int main()
20-
{
21-
// initialize a client
22-
const char* env_p = std::getenv("SERPAPI_KEY");
23-
if (env_p == nullptr) {
24-
cout << "SERPAPI_KEY not set, skipping example" << endl;
25-
return 0;
7+
#include <string>
8+
9+
int main() {
10+
const char *env_p = std::getenv("SERPAPI_KEY");
11+
if (env_p == nullptr) {
12+
std::cout << "SERPAPI_KEY not set, skipping example" << std::endl;
13+
return 0;
14+
}
15+
16+
std::string apiKey(env_p);
17+
std::map<std::string, std::string> default_parameter;
18+
default_parameter["api_key"] = apiKey;
19+
default_parameter["engine"] = "google";
20+
21+
serpapi::Client client(default_parameter);
22+
23+
std::map<std::string, std::string> parameter;
24+
parameter["q"] = "coffee";
25+
parameter["location"] = "Austin,TX";
26+
27+
rapidjson::Document d = client.search(parameter);
28+
29+
rapidjson::StringBuffer buffer;
30+
rapidjson::PrettyWriter<rapidjson::StringBuffer> writer(buffer);
31+
d.Accept(writer);
32+
33+
std::cout << "Search Results:" << std::endl;
34+
std::cout << buffer.GetString() << std::endl;
35+
36+
if (d.HasMember("search_metadata") && d["search_metadata"].HasMember("id")) {
37+
std::string id = d["search_metadata"]["id"].GetString();
38+
std::cout << "\nArchiving search ID: " << id << std::endl;
39+
rapidjson::Document archived = client.search_archive(id);
40+
41+
if (archived.HasMember("search_metadata") &&
42+
archived["search_metadata"]["status"] == "Success") {
43+
std::cout << "Successfully retrieved from archive." << std::endl;
2644
}
27-
std::string apiKey(env_p);
28-
std::map<string, string> default_parameter;
29-
default_parameter["engine"] = "google";
30-
default_parameter["api_key"] = apiKey;
31-
32-
// using namespace serpapi;
33-
serpapi::Client client(default_parameter);
34-
35-
// execute search
36-
std::map<string, string> parameter;
37-
parameter["q"] = "coffee";
38-
parameter["location"] = "Austin,TX";
39-
40-
// using namespace rapidjson;
41-
rapidjson::Document d = client.search(parameter);
42-
info("document loaded");
43-
assert(d.HasMember("search_metadata"));
44-
assert(d["search_metadata"]["status"] == "Success");
45-
assert(d["search_metadata"]["id"].IsString());
46-
47-
string id = d["search_metadata"]["id"].GetString();
48-
client.search_archive(id);
49-
assert(d["search_metadata"]["status"] == "Success");
50-
info(d);
45+
}
46+
47+
return 0;
5148
}

‎example/helper.cpp‎

Lines changed: 0 additions & 27 deletions
This file was deleted.

‎example/helper.hpp‎

Lines changed: 0 additions & 11 deletions
This file was deleted.

‎example/meson.build‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11

22
executable('google_example',
33
'google_example.cpp',
4-
'helper.cpp',
54
install : false,
65
link_with : [libserpapi],
76
include_directories : incdirs,

‎oobt/main.cpp‎

Lines changed: 45 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -1,77 +1,58 @@
1-
#include <cstdint>
1+
#include <cassert>
22
#include <iostream>
3-
#include <memory>
4-
#include <string>
5-
#include <curl/curl.h>
3+
#include <map>
4+
#include <rapidjson/document.h>
5+
#include <rapidjson/prettywriter.h>
6+
#include <rapidjson/stringbuffer.h>
67
#include <serpapi.hpp>
8+
#include <string>
79

8-
#include "rapidjson/document.h"
9-
#include "rapidjson/writer.h"
10-
#include "rapidjson/stringbuffer.h"
11-
#include "rapidjson/prettywriter.h"
12-
#include "rapidjson/pointer.h"
10+
void print_json(const rapidjson::Document &document) {
11+
rapidjson::StringBuffer buffer;
12+
rapidjson::PrettyWriter<rapidjson::StringBuffer> writer(buffer);
13+
document.Accept(writer);
14+
std::cout << buffer.GetString() << std::endl;
15+
}
1316

14-
using namespace rapidjson;
15-
using namespace std;
17+
int main() {
18+
const char *env_p = std::getenv("SERPAPI_KEY");
19+
if (env_p == nullptr) {
20+
std::cout << "SERPAPI_KEY not set, skipping OOBT" << std::endl;
21+
return 0;
22+
}
1623

17-
void info(const string& msg) {
18-
cout << "\nINFO: " << msg;
19-
}
24+
std::string apiKey(env_p);
25+
std::map<std::string, std::string> default_parameter;
26+
default_parameter["api_key"] = apiKey;
27+
default_parameter["engine"] = "google";
2028

21-
void info(double msg) {
22-
cout << "\nINFO: " << msg;
23-
}
29+
serpapi::Client client(default_parameter);
2430

25-
void info(const Document& document) {
26-
StringBuffer buffer;
27-
PrettyWriter<StringBuffer> writer(buffer);
28-
document.Accept(writer);
29-
cout << "\nINFO: " << buffer.GetString();
30-
}
31+
std::map<std::string, std::string> parameter;
32+
parameter["q"] = "coffee";
33+
parameter["location"] = "Austin,TX";
3134

32-
// RapidJSON parser documentation is available: https://rapidjson.org
33-
int main()
34-
{
35-
// initialize a client
36-
const char* env_p = std::getenv("SERPAPI_KEY");
37-
if (env_p == nullptr) {
38-
cout << "SERPAPI_KEY not set, skipping OOBT" << endl;
39-
return 0;
40-
}
41-
std::string apiKey(env_p);
42-
std::map<string, string> default_parameter;
43-
default_parameter["api_key"] = apiKey;
44-
default_parameter["engine"] = "google";
45-
46-
// using namespace serpapi;
47-
serpapi::Client client(default_parameter);
35+
rapidjson::Document d = client.search(parameter);
36+
std::cout << "Document loaded" << std::endl;
37+
print_json(d);
4838

49-
// execute search
50-
map<string, string> parameter;
51-
parameter["q"] = "coffee";
52-
parameter["location"] = "Austin,TX";
39+
assert(!d.HasMember("error"));
40+
assert(d.HasMember("search_metadata"));
41+
assert(d["search_metadata"]["status"] == "Success");
5342

54-
// using namespace rapidjson;
55-
Document d = client.search(parameter);
56-
info("document loaded");
57-
info(d);
58-
info("check content");
43+
std::string status = d["search_metadata"]["status"].GetString();
44+
std::cout << "Status: " << status << std::endl;
5945

60-
assert(!d.HasMember("error"));
61-
assert(d.HasMember("search_metadata"));
62-
assert(d["search_metadata"]["status"] == "Success");
63-
info(" search_metadata:");
64-
string status = d["search_metadata"]["status"].GetString();
65-
info(" status: " + status);
66-
assert(d["search_metadata"]["id"].IsString());
67-
string id = d["search_metadata"]["id"].GetString();
68-
info(" id: " + id);
46+
assert(d["search_metadata"]["id"].IsString());
47+
std::string id = d["search_metadata"]["id"].GetString();
48+
std::cout << "Search ID: " << id << std::endl;
6949

70-
info("search archive with id: " + id);
71-
client.search_archive(id);
72-
assert(d["search_metadata"]["status"] == "Success");
73-
info(" search found in archive.");
74-
info(" test passed.\n");
75-
return 0;
76-
}
50+
std::cout << "Retrieving from archive..." << id << std::endl;
51+
rapidjson::Document d2 = client.search_archive(id);
7752

53+
assert(d2["search_metadata"]["status"] == "Success");
54+
std::cout << "Successfully retrieved from archive." << std::endl;
55+
std::cout << "Test passed." << std::endl;
56+
57+
return 0;
58+
}

0 commit comments

Comments
 (0)