diff --git a/lib/matrix_api/matrix_api.dart b/lib/matrix_api/matrix_api.dart index 1f1b3099..05be4254 100644 --- a/lib/matrix_api/matrix_api.dart +++ b/lib/matrix_api/matrix_api.dart @@ -517,15 +517,15 @@ class MatrixApi { /// https://matrix.org/docs/spec/client_server/r0.6.0#post-matrix-client-r0-account-3pid-delete Future deleteThirdPartyIdentifier( String address, - ThirdPartyIdentifierMedium medium, + ThirdPartyIdentifierMedium medium, { String idServer, - ) async { + }) async { final response = await request( RequestType.POST, '/client/r0/account/3pid/delete', data: { 'address': address, 'medium': describeEnum(medium), - 'id_server': idServer, + if (idServer != null) 'id_server': idServer, }); return IdServerUnbindResult.values.firstWhere( (i) => describeEnum(i) == response['id_server_unbind_result'], diff --git a/lib/matrix_api/model/third_party_identifier.dart b/lib/matrix_api/model/third_party_identifier.dart index dedd6170..50628fff 100644 --- a/lib/matrix_api/model/third_party_identifier.dart +++ b/lib/matrix_api/model/third_party_identifier.dart @@ -16,14 +16,17 @@ * along with this program. If not, see . */ +import 'package:famedlysdk/matrix_api.dart'; + class ThirdPartyIdentifier { - String medium; + ThirdPartyIdentifierMedium medium; String address; int validatedAt; int addedAt; ThirdPartyIdentifier.fromJson(Map json) { - medium = json['medium']; + medium = ThirdPartyIdentifierMedium.values + .firstWhere((medium) => describeEnum(medium) == json['medium']); address = json['address']; validatedAt = json['validated_at']; addedAt = json['added_at']; @@ -31,7 +34,7 @@ class ThirdPartyIdentifier { Map toJson() { final data = {}; - data['medium'] = medium; + data['medium'] = describeEnum(medium); data['address'] = address; data['validated_at'] = validatedAt; data['added_at'] = addedAt; diff --git a/test/matrix_api_test.dart b/test/matrix_api_test.dart index 5336cce0..0f8f2aa6 100644 --- a/test/matrix_api_test.dart +++ b/test/matrix_api_test.dart @@ -287,7 +287,7 @@ void main() { final response = await matrixApi.deleteThirdPartyIdentifier( 'alice@example.com', ThirdPartyIdentifierMedium.email, - 'https://example.com', + idServer: 'https://example.com', ); expect(response, IdServerUnbindResult.success); matrixApi.homeserver = matrixApi.accessToken = null;