From 96ca9a725d2cbcf932d9aab5e28cff234db538c0 Mon Sep 17 00:00:00 2001 From: Jordan Bancino Date: Tue, 25 Apr 2023 22:11:34 +0000 Subject: [PATCH] Finish up capabilities for now. --- TODO.txt | 2 +- src/Routes/RouteCapabilities.c | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/TODO.txt b/TODO.txt index 8bf0d99..6996353 100644 --- a/TODO.txt +++ b/TODO.txt @@ -55,7 +55,7 @@ Milestone: v0.3.0 [ ] Attach device id to user object [ ] Use UserAuthenticate() [~] 9: User Data - [ ] 5: Capabilities negotiation + [x] 5: Capabilities negotiation [ ] 10: Security (Rate Limiting) Milestone: v0.4.0 diff --git a/src/Routes/RouteCapabilities.c b/src/Routes/RouteCapabilities.c index 55f045e..f0a3b84 100644 --- a/src/Routes/RouteCapabilities.c +++ b/src/Routes/RouteCapabilities.c @@ -34,18 +34,26 @@ ROUTE_IMPL(RouteCapabilities, path, argp) { HashMap *response; HashMap *capabilities; + HashMap *roomVersions; (void) path; (void) argp; response = HashMapCreate(); capabilities = HashMapCreate(); + roomVersions = HashMapCreate(); JsonSet(capabilities, JsonValueBoolean(1), 2, "m.change_password", "enabled"); JsonSet(capabilities, JsonValueBoolean(1), 2, "m.set_displayname", "enabled"); JsonSet(capabilities, JsonValueBoolean(1), 2, "m.set_avatar_url", "enabled"); JsonSet(capabilities, JsonValueBoolean(0), 2, "m.3pid_changes", "enabled"); + /* TODO: When more room versions are implemented, add them to roomVersions */ + HashMapSet(roomVersions, "1", JsonValueString("unstable")); + + JsonSet(capabilities, JsonValueString("1"), 2, "m.room_versions", "default"); + JsonSet(capabilities, JsonValueObject(roomVersions), 2, "m.room_versions", "available"); + HashMapSet(response, "capabilities", JsonValueObject(capabilities)); return response; }