2022-12-28 20:56:27 +00:00
|
|
|
import '../../globals.dart';
|
2022-11-18 21:50:15 +00:00
|
|
|
import '../../models/connection.dart';
|
2022-12-28 20:56:27 +00:00
|
|
|
import '../../services/auth_service.dart';
|
2022-11-18 21:50:15 +00:00
|
|
|
|
|
|
|
extension ConnectionMastodonExtensions on Connection {
|
|
|
|
static Connection fromJson(Map<String, dynamic> json) {
|
|
|
|
final name = json['display_name'] ?? '';
|
|
|
|
final id = json['id'] ?? '';
|
|
|
|
final profileUrl = Uri.parse(json['url'] ?? '');
|
2022-11-30 00:56:14 +00:00
|
|
|
const network = 'Unknown';
|
2022-11-18 21:50:15 +00:00
|
|
|
final avatar = Uri.tryParse(json['avatar_static'] ?? '') ?? Uri();
|
2022-12-28 20:56:27 +00:00
|
|
|
final String handleFromJson = json['acct'];
|
|
|
|
|
|
|
|
late final String handle;
|
|
|
|
if (handleFromJson.contains('@')) {
|
|
|
|
handle = handleFromJson;
|
|
|
|
} else {
|
|
|
|
final server = getIt<AuthService>().currentServer;
|
|
|
|
handle = '$handleFromJson@$server';
|
|
|
|
}
|
2022-11-18 21:50:15 +00:00
|
|
|
|
|
|
|
return Connection(
|
|
|
|
name: name,
|
|
|
|
id: id,
|
2022-12-28 20:56:27 +00:00
|
|
|
handle: handle,
|
2023-01-18 05:15:52 +00:00
|
|
|
profileUrl: profileUrl.toString(),
|
2022-11-18 21:50:15 +00:00
|
|
|
network: network,
|
2023-01-18 05:15:52 +00:00
|
|
|
avatarUrl: avatar.toString(),
|
2022-11-18 21:50:15 +00:00
|
|
|
);
|
|
|
|
}
|
|
|
|
}
|