From 9b8412aef5eafd0265d93208d832bcaadf17ec72 Mon Sep 17 00:00:00 2001 From: Hank Grabowski Date: Fri, 28 Jun 2024 09:38:54 -0400 Subject: [PATCH] Pull profile data as well as connection data on getConnectionWithStatus Helps address Issue #36 --- lib/friendica_client/friendica_client.dart | 10 +++++++++- .../friendica/connection_friendica_extensions.dart | 2 +- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/lib/friendica_client/friendica_client.dart b/lib/friendica_client/friendica_client.dart index f72d85f..e74c1d6 100644 --- a/lib/friendica_client/friendica_client.dart +++ b/lib/friendica_client/friendica_client.dart @@ -554,6 +554,14 @@ class RelationshipsClient extends FriendicaClient { _networkStatusService.startConnectionUpdateStatus(); final myId = profile.userId; final id = int.parse(connection.id); + final connectionUpdateUrl = + Uri.parse('https://$serverName/api/v1/accounts/$id'); + final updatedConnection = await _getApiRequest(connectionUpdateUrl).fold( + onSuccess: (json) => ConnectionMastodonExtensions.fromJson(json), + onError: (error) { + _logger.severe('Error getting connection for $id'); + return connection; + }); final paging = '?min_id=${id - 1}&max_id=${id + 1}'; final baseUrl = 'https://$serverName/api/v1/accounts/$myId'; final following = @@ -581,7 +589,7 @@ class RelationshipsClient extends FriendicaClient { } _networkStatusService.finishConnectionUpdateStatus(); - return Result.ok(connection.copy(status: status)); + return Result.ok(updatedConnection.copy(status: status)); } FutureResult>, ExecError> diff --git a/lib/serializers/friendica/connection_friendica_extensions.dart b/lib/serializers/friendica/connection_friendica_extensions.dart index 99049f8..e05c7ce 100644 --- a/lib/serializers/friendica/connection_friendica_extensions.dart +++ b/lib/serializers/friendica/connection_friendica_extensions.dart @@ -2,7 +2,7 @@ import '../../models/connection.dart'; extension ConnectionFriendicaExtensions on Connection { static Connection fromJson(Map json) { - final status = json['following'] == 'true' + final status = json['following'] ? ConnectionStatus.youFollowThem : ConnectionStatus.none; final name = json['name'] ?? '';