1 #include "httplib/httplib.h" 8 long int unix_timestamp() {
9 time_t t = std::time(0);
10 long int now =
static_cast<long int> (t);
16 using namespace httplib;
25 std::map<int, std::tuple<int, double, double, double>> database;
28 svr.Post(
"/save", [&](
const Request& req, Response& res) {
33 request = json::parse(req.body);
34 }
catch(json::exception e) {
35 result[
"result"] =
"error";
36 result[
"message"] = e.what();
37 res.set_content(result.dump(),
"json");
41 std::cout <<
"Got new save request " << request.dump() << std::endl;
43 database[next_id] = std::make_tuple(
45 request[
"x"].is_number() ? (
double) request[
"x"] : 0,
46 request[
"y"].is_number() ? (
double) request[
"y"] : 0,
47 request[
"temperature"].is_number() ? (
double) request[
"temperature"] : 0
50 result[
"result"] =
"ok";
51 result[
"id"] = next_id++;
52 res.set_content(result.dump(),
"json");
56 svr.Get(R
"(/find/(\d+))", [&](const Request& req, Response& res) {
57 std::cout <<
"Got find request for id = " << req.matches[1] <<
"\n";
58 auto id = std::stoi(req.matches[1].str());
60 if ( database.find(
id) != database.end() ) {
64 {
"timestamp", std::get<0>(database[id]) },
65 {
"x", std::get<1>(database[id]) },
66 {
"y", std::get<2>(database[id]) },
67 {
"temperature", std::get<3>(database[id]) }
70 result[
"result"] =
"error";
71 result[
"message"] =
"not found";
74 res.set_content(result.dump(),
"json");
77 svr.listen(
"0.0.0.0", 8080);
80 std::cout <<
"You can't see me, because svr.listen never returns\n";