From a806f736c069f232a29e03128276fc634036f26a Mon Sep 17 00:00:00 2001 From: WilsonLe Date: Wed, 16 Oct 2024 18:57:12 +1100 Subject: [PATCH] make class code non null, throw errors on non-200 responses --- lib/pages/new_space/new_space.dart | 21 ++++++++++++++------- lib/pangea/utils/space_code.dart | 4 ++-- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/lib/pages/new_space/new_space.dart b/lib/pages/new_space/new_space.dart index 1bf6ae9b5..9fb8d787d 100644 --- a/lib/pages/new_space/new_space.dart +++ b/lib/pages/new_space/new_space.dart @@ -28,8 +28,8 @@ class NewSpaceController extends State { TextEditingController nameController = TextEditingController(); TextEditingController topicController = TextEditingController(); // #Pangea - // bool publicGroup = false; - bool publicGroup = true; + bool publicGroup = false; + // bool publicGroup = true; // final GlobalKey rulesEditorKey = GlobalKey(); final GlobalKey addToSpaceKey = GlobalKey(); // commenting out language settings in spaces for now @@ -152,14 +152,20 @@ class NewSpaceController extends State { final avatar = this.avatar; avatarUrl ??= avatar == null ? null : await client.uploadContent(avatar); final classCode = await SpaceCodeUtil.generateSpaceCode(client); - if (classCode == null) { - return; - } final spaceId = await client.createRoom( // #Pangea - preset: sdk.CreateRoomPreset.publicChat, + preset: publicGroup + ? sdk.CreateRoomPreset.publicChat + : sdk.CreateRoomPreset.privateChat, + // #Pangea creationContent: {'type': RoomCreationTypes.mSpace}, visibility: publicGroup ? sdk.Visibility.public : null, + // #Pangea + // roomAliasName: publicGroup + // ? nameController.text.trim().toLowerCase().replaceAll(' ', '_') + // : null, + // roomAliasName: SpaceCodeUtil.generateSpaceCode(), + // Pangea# name: nameController.text.trim(), topic: topicController.text.isEmpty ? null : topicController.text, // #Pangea @@ -173,7 +179,6 @@ class NewSpaceController extends State { initialState: [ // #Pangea ...initialState, - // Pangea# if (avatar != null) sdk.StateEvent( type: sdk.EventTypes.RoomAvatar, @@ -187,7 +192,9 @@ class NewSpaceController extends State { ModelKey.accessCode: classCode, }, ), + // Pangea# ], + // Pangea# ); // #Pangea final List> futures = [ diff --git a/lib/pangea/utils/space_code.dart b/lib/pangea/utils/space_code.dart index 0eaef5751..957e04ca8 100644 --- a/lib/pangea/utils/space_code.dart +++ b/lib/pangea/utils/space_code.dart @@ -14,7 +14,7 @@ class SpaceCodeUtil { return spacecode.length == codeLength && spacecode.contains(r'[0-9]'); } - static Future generateSpaceCode(Client client) async { + static Future generateSpaceCode(Client client) async { final response = await client.httpClient.get( Uri.parse( '${client.homeserver}/_synapse/client/pangea/v1/request_room_code', @@ -25,7 +25,7 @@ class SpaceCodeUtil { }, ); if (response.statusCode != 200) { - return null; + throw Exception('Failed to generate room code: $response'); } final roomCodeResult = jsonDecode(response.body); if (roomCodeResult['access_code'] is String) {