Merge pull request #1864 from famedly/krille/remove-matrix-connection-exception
refactor: Remove Matrix Connection Exception
This commit is contained in:
commit
06c6e5b869
|
|
@ -50,7 +50,6 @@ export 'matrix_api_lite/model/events/room_key_request_content.dart';
|
||||||
export 'matrix_api_lite/model/events/secret_storage_default_key_content.dart';
|
export 'matrix_api_lite/model/events/secret_storage_default_key_content.dart';
|
||||||
export 'matrix_api_lite/model/events/secret_storage_key_content.dart';
|
export 'matrix_api_lite/model/events/secret_storage_key_content.dart';
|
||||||
export 'matrix_api_lite/model/events/tombstone_content.dart';
|
export 'matrix_api_lite/model/events/tombstone_content.dart';
|
||||||
export 'matrix_api_lite/model/matrix_connection_exception.dart';
|
|
||||||
export 'matrix_api_lite/model/matrix_event.dart';
|
export 'matrix_api_lite/model/matrix_event.dart';
|
||||||
export 'matrix_api_lite/model/matrix_exception.dart';
|
export 'matrix_api_lite/model/matrix_exception.dart';
|
||||||
export 'matrix_api_lite/model/matrix_keys.dart';
|
export 'matrix_api_lite/model/matrix_keys.dart';
|
||||||
|
|
|
||||||
|
|
@ -112,39 +112,37 @@ class MatrixApi extends Api {
|
||||||
|
|
||||||
late http.Response resp;
|
late http.Response resp;
|
||||||
Map<String, Object?>? jsonResp = <String, Object?>{};
|
Map<String, Object?>? jsonResp = <String, Object?>{};
|
||||||
try {
|
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case RequestType.GET:
|
case RequestType.GET:
|
||||||
resp = await httpClient.get(url, headers: headers);
|
resp = await httpClient.get(url, headers: headers);
|
||||||
break;
|
break;
|
||||||
case RequestType.POST:
|
case RequestType.POST:
|
||||||
resp = await httpClient.post(url, body: json, headers: headers);
|
resp = await httpClient.post(url, body: json, headers: headers);
|
||||||
break;
|
break;
|
||||||
case RequestType.PUT:
|
case RequestType.PUT:
|
||||||
resp = await httpClient.put(url, body: json, headers: headers);
|
resp = await httpClient.put(url, body: json, headers: headers);
|
||||||
break;
|
break;
|
||||||
case RequestType.DELETE:
|
case RequestType.DELETE:
|
||||||
resp = await httpClient.delete(url, headers: headers);
|
resp = await httpClient.delete(url, headers: headers);
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
var respBody = resp.body;
|
|
||||||
try {
|
|
||||||
respBody = utf8.decode(resp.bodyBytes);
|
|
||||||
} catch (_) {
|
|
||||||
// No-OP
|
|
||||||
}
|
|
||||||
if (resp.statusCode >= 500 && resp.statusCode < 600) {
|
|
||||||
throw Exception(respBody);
|
|
||||||
}
|
|
||||||
var jsonString = String.fromCharCodes(respBody.runes);
|
|
||||||
if (jsonString.startsWith('[') && jsonString.endsWith(']')) {
|
|
||||||
jsonString = '{"chunk":$jsonString}';
|
|
||||||
}
|
|
||||||
jsonResp = jsonDecode(jsonString)
|
|
||||||
as Map<String, Object?>?; // May throw FormatException
|
|
||||||
} catch (e, s) {
|
|
||||||
throw MatrixConnectionException(e, s);
|
|
||||||
}
|
}
|
||||||
|
var respBody = resp.body;
|
||||||
|
try {
|
||||||
|
respBody = utf8.decode(resp.bodyBytes);
|
||||||
|
} catch (_) {
|
||||||
|
// No-OP
|
||||||
|
}
|
||||||
|
if (resp.statusCode >= 500 && resp.statusCode < 600) {
|
||||||
|
throw Exception(respBody);
|
||||||
|
}
|
||||||
|
var jsonString = String.fromCharCodes(respBody.runes);
|
||||||
|
if (jsonString.startsWith('[') && jsonString.endsWith(']')) {
|
||||||
|
jsonString = '{"chunk":$jsonString}';
|
||||||
|
}
|
||||||
|
jsonResp = jsonDecode(jsonString)
|
||||||
|
as Map<String, Object?>?; // May throw FormatException
|
||||||
|
|
||||||
if (resp.statusCode >= 400 && resp.statusCode < 500) {
|
if (resp.statusCode >= 400 && resp.statusCode < 500) {
|
||||||
throw MatrixException(resp);
|
throw MatrixException(resp);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,32 +0,0 @@
|
||||||
/* MIT License
|
|
||||||
*
|
|
||||||
* Copyright (C) 2019, 2020, 2021 Famedly GmbH
|
|
||||||
*
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
|
||||||
* in the Software without restriction, including without limitation the rights
|
|
||||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
* copies of the Software, and to permit persons to whom the Software is
|
|
||||||
* furnished to do so, subject to the following conditions:
|
|
||||||
*
|
|
||||||
* The above copyright notice and this permission notice shall be included in all
|
|
||||||
* copies or substantial portions of the Software.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
* SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
class MatrixConnectionException implements Exception {
|
|
||||||
final dynamic original;
|
|
||||||
final StackTrace stackTrace;
|
|
||||||
|
|
||||||
MatrixConnectionException(this.original, this.stackTrace);
|
|
||||||
|
|
||||||
@override
|
|
||||||
String toString() => original.toString();
|
|
||||||
}
|
|
||||||
Loading…
Reference in New Issue