diff options
author | Ebus-at-dockstar <ebus@dockstar> | 2014-09-18 18:01:01 +0200 |
---|---|---|
committer | Ebus-at-dockstar <ebus@dockstar> | 2014-09-18 18:01:01 +0200 |
commit | ced20d7fc3ee98005ea8a2d09d2a0d99361ff0a4 (patch) | |
tree | 56dd9df62c3adbb6d186930e52a6a8a3fc2a953e /datastore-leveldb/src/web.cpp | |
parent | 87e143e62d853ec60771141cadb2a6b1294e9de6 (diff) | |
download | ebus-alt-ced20d7fc3ee98005ea8a2d09d2a0d99361ff0a4.tar.gz ebus-alt-ced20d7fc3ee98005ea8a2d09d2a0d99361ff0a4.zip |
add /api/list
Diffstat (limited to 'datastore-leveldb/src/web.cpp')
-rw-r--r-- | datastore-leveldb/src/web.cpp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/datastore-leveldb/src/web.cpp b/datastore-leveldb/src/web.cpp index 503e3aa..3485539 100644 --- a/datastore-leveldb/src/web.cpp +++ b/datastore-leveldb/src/web.cpp @@ -177,3 +177,25 @@ void web_handle_api_range_size(const boost::cmatch &match, struct mg_connection mg_write(conn, outbuf.str().c_str(), outbuf.tellp()); delete it; } + + +const boost::regex web_handle_api_list_R( + "/api/list"); +void web_handle_api_list(const boost::cmatch &match, struct mg_connection *conn) { + reply_header(conn, true, "OK", "Content-Type: application/json\r\n\r\n"); + mg_write(conn, "[", 1); + + std::list<std::string> * list = db_list(); + for (std::list<std::string>::iterator it = list->begin(); + it != list->end(); ++it) { + if (it != list->begin()) { + mg_write(conn, ",\"", 2); + } else { + mg_write(conn, "\"", 1); + } + mg_write(conn, (*it).c_str(), (*it).size()); + mg_write(conn, "\"\n", 2); + } + delete(list); + mg_write(conn, "]", 1); +} |