Files
aboba/routes.h
2025-06-22 14:57:24 +02:00

46 lines
980 B
C

#ifndef ROUTES_H_
#define ROUTES_H_
#include "gebs/gebs.h"
#include "mongoose/mongoose.h"
typedef struct {
enum {
ROUTE_RESULT_DYNAMIC,
ROUTE_RESULT_STATIC,
} type;
int status_code;
NString_List headers;
String_Builder body;
} Route_Result;
typedef struct {
struct mg_mgr *mgr;
ulong conn_id;
struct mg_str message;
} Route_Thread_Data;
typedef void (*Route_Handler)(struct mg_http_message *msg, Route_Result *result, void *context_data);
typedef struct {
char *key; // path
Route_Handler value;
void *context_data;
} Route;
#define ROUTE_HANDLER(name) void route_##name(struct mg_http_message *msg, Route_Result *result, void *context_data)
ROUTE_HANDLER(page_not_found);
ROUTE_HANDLER(simple_css);
ROUTE_HANDLER(favicon);
ROUTE_HANDLER(me_jpg);
#if MY_DEBUG
ROUTE_HANDLER(hotreload_js);
ROUTE_HANDLER(build_id);
#endif
ROUTE_HANDLER(home);
ROUTE_HANDLER(generic_blog);
ROUTE_HANDLER(blog);
#endif // ROUTES_H_