From 38e20390ddf38edd74447ef7db2af660b8e0ff32 Mon Sep 17 00:00:00 2001 From: Niklas Halle Date: Mon, 24 Aug 2020 19:04:13 +0200 Subject: add all available commands (in this branch? @Max where are the others?) --- src/SimpleHandlers.cpp | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 src/SimpleHandlers.cpp (limited to 'src/SimpleHandlers.cpp') 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 linkAnnotations; + linkAnnotations.emplace_back(create_annotation(Reply::AnnotationType::link, "Wikipedia")); + linkAnnotations.emplace_back(create_annotation(Reply::AnnotationType::underline)); + + std::vector 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 *) payload; + + std::vector 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 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 annotations; + annotations.emplace_back(create_annotation(Reply::AnnotationType::bold)); + + std::vector 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 -- cgit v1.2.3-54-g00ecf