Files
workavia-mail-front/model/lib/extensions/session_extension.dart
T
2022-06-15 11:18:49 +07:00

27 lines
983 B
Dart

import 'package:core/utils/app_logger.dart';
import 'package:jmap_dart_client/jmap/account_id.dart';
import 'package:jmap_dart_client/jmap/core/session/session.dart';
import 'package:uri/uri.dart';
extension SessionExtension on Session {
String getDownloadUrl() {
var baseUrl = '${downloadUrl.origin}${downloadUrl.path}?${downloadUrl.query}';
if (baseUrl.endsWith('/')) {
baseUrl = baseUrl.substring(0, baseUrl.length - 1);
}
log('SessionExtension::getDownloadUrl(): $baseUrl');
final downloadUrlDecode = Uri.decodeFull(baseUrl);
log('SessionExtension::getDownloadUrl(): DECODE $downloadUrlDecode');
return downloadUrlDecode;
}
Uri getUploadUrl(AccountId accountId) {
final baseUrl = '${uploadUrl.origin}${uploadUrl.path}';
final uploadUriTemplate = UriTemplate('${Uri.decodeFull(baseUrl)}');
final uploadUri = uploadUriTemplate.expand({
'accountId' : '${accountId.id.value}'
});
return Uri.parse(uploadUri);
}
}