error handling

This commit is contained in:
Henry Hiles 2025-08-03 11:51:15 -04:00
commit 57d38535d3
No known key found for this signature in database
5 changed files with 58 additions and 35 deletions

View file

@ -17,6 +17,7 @@ void main(List<String> argsRaw) async {
final parser = ConfigParser()
..addOption("socket", mandatory: true)
..addOption("homeserver", mandatory: true)
..addOption("failureUri", mandatory: true)
..addOption("successUri", mandatory: true)
..addOption("name", mandatory: true)
..addOption("adminName", mandatory: true)
@ -120,34 +121,48 @@ If you have any issues, reply to this email.""",
.addMiddleware(logRequests())
.addHandler(
(Router()..post("/", (Request request) async {
final body = await request.readAsString();
final registration = Registration.fromJson(
Uri.splitQueryString(
body,
).map((key, value) => MapEntry(key, value.toLowerCase())),
);
final client = await container.read(
ClientController.provider.future,
);
final settings = container.read(SettingsController.provider)!;
final room = client.getRoomByAlias(settings.adminRoom);
final message =
"""# Registration request
try {
final body = await request.readAsString();
final registration = Registration.fromJson(
Uri.splitQueryString(
body,
).map((key, value) => MapEntry(key, value.toLowerCase())),
);
throw "test error";
final client = await container.read(
ClientController.provider.future,
);
final room = client.getRoomByAlias(settings.adminRoom)!;
final message =
"""# Registration request
- Username: `${registration.username}`
- Email: `${registration.email}`""";
final event = await room!.sendEvent({
"body": message,
"msgtype": MessageTypes.Text,
"format": "org.matrix.custom.html",
"formatted_body": markdownToHtml(message),
...registration.toJson(),
});
final event = await room.sendEvent({
"body": message,
"msgtype": MessageTypes.Text,
"format": "org.matrix.custom.html",
"formatted_body": markdownToHtml(message),
...registration.toJson(),
});
await room.sendReaction(event!, "");
await room.sendReaction(event!, "");
return Response.found(settings.successUri);
return Response.found(settings.successUri);
} catch (error) {
final message = "An error occurred: $error";
try {
final room = client.getRoomByAlias(settings.adminRoom)!;
await room.sendTextEvent(message);
} catch (_) {
print(message);
}
return Response.found(settings.failureUri);
}
}))
.call,
);