TF-56 Send email with attachment

This commit is contained in:
dab246
2021-09-20 09:25:00 +07:00
committed by Dat H. Pham
parent a3b0ae0d53
commit 449b512986
29 changed files with 176 additions and 133 deletions
@@ -1,10 +1,7 @@
import 'package:dio/dio.dart';
import 'package:jmap_dart_client/jmap/account_id.dart';
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
import 'package:model/email/read_actions.dart';
import 'package:model/account/account_request.dart';
import 'package:model/download/download_task_id.dart';
import 'package:model/email/attachment.dart';
import 'package:model/model.dart';
import 'package:tmail_ui_user/features/composer/domain/model/email_request.dart';
import 'package:tmail_ui_user/features/email/data/datasource/email_datasource.dart';
import 'package:tmail_ui_user/features/email/data/network/email_api.dart';
@@ -1,5 +1,4 @@
import 'dart:async';
import 'dart:convert';
import 'dart:io';
import 'package:core/core.dart';
@@ -155,14 +154,12 @@ class EmailAPI {
throw DeviceNotSupportedException();
}
final basicAuth = 'Basic ' + base64Encode(utf8.encode('${accountRequest.userName.userName}:${accountRequest.password.value}'));
final taskIds = await Future.wait(
attachments.map((attachment) async => await FlutterDownloader.enqueue(
url: attachment.getDownloadUrl(baseDownloadUrl, accountId),
savedDir: externalStorageDirPath,
headers: {
HttpHeaders.authorizationHeader: basicAuth,
HttpHeaders.authorizationHeader: accountRequest.basicAuth,
HttpHeaders.acceptHeader: DioClient.jmapHeader
},
fileName: attachment.name,
@@ -182,13 +179,11 @@ class EmailAPI {
AccountRequest accountRequest,
CancelToken cancelToken
) async {
final basicAuth = 'Basic ' + base64Encode(utf8.encode('${accountRequest.userName.userName}:${accountRequest.password.value}'));
return _downloadManager.downloadFile(
attachment.getDownloadUrl(baseDownloadUrl, accountId),
getTemporaryDirectory(),
attachment.name ?? '',
basicAuth,
accountRequest.basicAuth,
cancelToken: cancelToken);
}
}
@@ -1,11 +1,8 @@
import 'package:dio/src/cancel_token.dart';
import 'package:dio/dio.dart';
import 'package:jmap_dart_client/jmap/account_id.dart';
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
import 'package:model/email/read_actions.dart';
import 'package:model/account/account_request.dart';
import 'package:model/download/download_task_id.dart';
import 'package:model/email/attachment.dart';
import 'package:model/model.dart';
import 'package:tmail_ui_user/features/composer/domain/model/email_request.dart';
import 'package:tmail_ui_user/features/email/data/datasource/email_datasource.dart';
import 'package:tmail_ui_user/features/email/domain/repository/email_repository.dart';