46 lines
980 B
C
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_
|