40 lines
1.1 KiB
C
40 lines
1.1 KiB
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;
|
|
|
|
#if MY_DEBUG
|
|
void route_build_id(struct mg_http_message *msg, Route_Result *result, void *context_data);
|
|
#endif
|
|
void route_page_not_found(struct mg_http_message *msg, Route_Result *result, void *context_data);
|
|
void route_home(struct mg_http_message *msg, Route_Result *result, void *context_data);
|
|
void route_generic_blog(struct mg_http_message *msg, Route_Result *result, void *context_data);
|
|
void route_blog(struct mg_http_message *msg, Route_Result *result, void *context_data);
|
|
|
|
#endif // ROUTES_H_
|