coyote/servehelper.h

26 lines
1.1 KiB
C
Raw Normal View History

2023-11-22 08:39:24 +00:00
#pragma once
#include <optional>
2023-12-08 11:27:27 +00:00
#include <unordered_map>
2023-11-22 08:39:24 +00:00
#include <httplib/httplib.h>
#include "blankie/serializer.h"
2023-11-29 11:36:52 +00:00
class CurlUrl; // forward declaration from curlu_wrapper.h
2023-11-22 08:39:24 +00:00
using Element = blankie::html::Element;
using Node = blankie::html::Node;
using Nodes = std::vector<Node>;
2023-12-08 11:27:27 +00:00
using Cookies = std::unordered_map<std::string, std::string>;
2023-11-22 08:39:24 +00:00
void serve(const httplib::Request& req, httplib::Response& res, std::string title, Element element, Nodes extra_head = {});
void serve_error(const httplib::Request& req, httplib::Response& res,
std::string title, std::optional<std::string> subtitle = std::nullopt, std::optional<std::string> info = std::nullopt);
void serve_redirect(const httplib::Request& req, httplib::Response& res, std::string url, bool permanent = false);
2023-11-29 11:36:52 +00:00
bool starts_with(const CurlUrl& url, const CurlUrl& base);
2023-11-22 08:39:24 +00:00
std::string get_origin(const httplib::Request& req);
std::string proxy_mastodon_url(const httplib::Request& req, const std::string& url_str);
bool should_send_304(const httplib::Request& req, uint64_t hash);
2023-12-08 11:27:27 +00:00
Cookies parse_cookies(const httplib::Request& req);