#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))); while (!itor.second.description->empty()) { reply_vec.emplace_back(std::move(itor.second.description->back())); itor.second.description->pop(); } } 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); }