feat: serve paste entries
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful

This commit is contained in:
Jef Roosens 2022-11-21 16:28:27 +01:00
parent 7f42d540b5
commit 97ed770166
Signed by: Jef Roosens
GPG key ID: B75D4F293C7052DB
3 changed files with 11 additions and 6 deletions

View file

@ -52,17 +52,20 @@ int main() {
mkdir((data_dir + "/pastes").c_str(), 0700);
crow::SimpleApp app;
app.loglevel(crow::LogLevel::Info);
// Serve an entry
CROW_ROUTE(app, "/<string>")
.methods(crow::HTTPMethod::Get)(
[trie](crow::response &res, std::string s) {
Entry *entry = ternarytrie_search(trie, s.c_str());
[data_dir, trie](crow::response &res, std::string key) {
Entry *entry = ternarytrie_search(trie, key.c_str());
// TODO check entry type
if (entry != NULL) {
res.redirect(entry->string);
if (entry->type == Redirect) {
res.redirect(entry->string);
} else if (entry->type == Paste) {
res.set_static_file_info(data_dir + "/pastes/" + key);
}
} else {
res.code = 404;
}