aboutsummaryrefslogtreecommitdiffstats
path: root/src/SimpleHandlers.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/SimpleHandlers.cpp')
-rw-r--r--src/SimpleHandlers.cpp66
1 files changed, 66 insertions, 0 deletions
diff --git a/src/SimpleHandlers.cpp b/src/SimpleHandlers.cpp
new file mode 100644
index 0000000..033da53
--- /dev/null
+++ b/src/SimpleHandlers.cpp
@@ -0,0 +1,66 @@
+#include "SimpleHandlers.hpp"
+#include "Response.hpp"
+
+using namespace Response;
+
+Handler::json Handler::klingerHandler(std::string const &arguments, std::string const &session, void *payload) {
+ (void) payload;
+ return simple_response("Bonjour!");
+}
+
+Handler::json Handler::wikiHandler(std::string const &arguments, std::string const &session, void *payload) {
+ (void) payload;
+
+ std::vector<json> linkAnnotations;
+ linkAnnotations.emplace_back(create_annotation(Reply::AnnotationType::link, "Wikipedia"));
+ linkAnnotations.emplace_back(create_annotation(Reply::AnnotationType::underline));
+
+ std::vector<json> reply_vec;
+ reply_vec.emplace_back(create_text("Visit "));
+ reply_vec.emplace_back(create_text("https://eo.wikipedia.org/", std::move(linkAnnotations)));
+ reply_vec.emplace_back(create_text(" today!"));
+
+ return create_response(std::move(reply_vec), session, true);
+}
+
+Handler::json Handler::helpHandler(std::string const &arguments, std::string const &session, void *payload) {
+ auto commands = *(std::unordered_map<std::string, CommandHandler> *) payload;
+
+ std::vector<json> reply_vec;
+ reply_vec.emplace_back(create_text(
+ "Reading from the gospel according to saint N,\n"
+ "And you shall feast upon the fruits and vegetables as I do in the offering for they will make you strong.\n"
+ "\n"
+ "Dear my fellow users, these are my official commands, which are offered to my believers.\n"
+ "\n"));
+
+ for (auto const &itor : commands) {
+ std::vector<json> commandAnnotations;
+ commandAnnotations.emplace_back(create_annotation(Reply::AnnotationType::command));
+
+ reply_vec.emplace_back(create_text("- "));
+ reply_vec.emplace_back(create_text(itor.first, std::move(commandAnnotations)));
+ reply_vec.emplace_back(create_text(" " + itor.second.description + "\n"));
+ }
+
+ reply_vec.emplace_back(create_text(
+ "\n"
+ "Thanks for using me. Takk skal du ha.\n"
+ "Bussy\n"
+ "N"));
+
+ return create_response(std::move(reply_vec), session, true);
+}
+
+Handler::json Handler::stopHandler(std::string const &arguments, std::string const &session, void *payload) {
+ auto app = (crow::SimpleApp *) payload;
+ app->stop();
+
+ std::vector<json> annotations;
+ annotations.emplace_back(create_annotation(Reply::AnnotationType::bold));
+
+ std::vector<json> reply_vec;
+ reply_vec.emplace_back(create_text("stopped", std::move(annotations)));
+
+ return create_response(std::move(reply_vec), session, true);
+} \ No newline at end of file