[MOD/WIP] Use actual router

This commit is contained in:
LDA 2024-06-29 02:12:01 +02:00
commit 0ee79cc586
7 changed files with 183 additions and 87 deletions

View file

@ -51,6 +51,12 @@ typedef struct ParseeData {
Db *db;
} ParseeData;
#define GrabString(obj, ...) JsonValueAsString(JsonGet(obj, __VA_ARGS__))
#define GrabInteger(obj, ...) JsonValueAsInteger(JsonGet(obj, __VA_ARGS__))
#define GrabBoolean(obj, ...) JsonValueAsBoolean(JsonGet(obj, __VA_ARGS__))
#define GrabObject(obj, ...) JsonValueAsObject(JsonGet(obj, __VA_ARGS__))
#define GrabArray(obj, ...) JsonValueAsArray(JsonGet(obj, __VA_ARGS__))
#define SECONDS * 1000
#define MINUTES * 60 SECONDS
#define HOURS * 60 MINUTES

View file

@ -8,6 +8,22 @@ typedef struct ParseeHttpArg {
Stream *stream;
} ParseeHttpArg;
typedef struct ParseeCmdArg {
ParseeData *data;
HashMap *event;
} ParseeCmdArg;
/* A list of all commands. */
#define COMMANDS X_COMMAND("ban-user", CmdBanUser) \
X_COMMAND("ban-list", CmdNoFlyList) \
X_COMMAND("list-bans", CmdListBans) \
X_COMMAND("set-pl", CmdSetPL) \
#define X_COMMAND(path, name) extern void name(Command *, void *);
COMMANDS
#undef X_COMMAND
#define CommandHead(name, cmd, argp) void \
name(Command * cmd, void *argp)
/* A list of all routes. */
#define ROUTES X_ROUTE("/", RouteRoot) \
X_ROUTE("/_matrix/app/v1/transactions/(.*)", RouteTxns) \