Remove LoginAPI, because it does not belongs to JMAP server

This commit is contained in:
Dat PHAM HOANG
2021-09-16 16:21:51 +07:00
committed by Dat H. Pham
parent 5fd305d102
commit afe6095c7e
20 changed files with 22 additions and 345 deletions
@@ -22,11 +22,11 @@ import 'package:tmail_ui_user/features/composer/domain/state/search_email_addres
import 'package:tmail_ui_user/features/composer/domain/usecases/save_email_addresses_interactor.dart';
import 'package:tmail_ui_user/features/composer/domain/usecases/search_email_address_interactor.dart';
import 'package:tmail_ui_user/features/composer/domain/usecases/send_email_interactor.dart';
import 'package:tmail_ui_user/features/composer/presentation/extensions/email_action_type_extension.dart';
import 'package:tmail_ui_user/features/email/presentation/constants/email_constants.dart';
import 'package:tmail_ui_user/features/email/presentation/extensions/email_content_extension.dart';
import 'package:tmail_ui_user/features/email/presentation/model/attachment_file.dart';
import 'package:tmail_ui_user/features/email/presentation/model/composer_arguments.dart';
import 'package:tmail_ui_user/features/email/presentation/extensions/email_content_extension.dart';
import 'package:tmail_ui_user/features/composer/presentation/extensions/email_action_type_extension.dart';
import 'package:tmail_ui_user/features/email/presentation/model/message_content.dart';
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
import 'package:uuid/uuid.dart';
@@ -217,9 +217,7 @@ class ComposerController extends BaseController {
final generateEmailId = EmailId(Id(_uuid.v1()));
final outboxMailboxId = composerArguments.value!.mapMailboxId[PresentationMailbox.roleOutbox];
final listFromEmailAddress = {
EmailAddress(
composerArguments.value!.userProfile.getNameDisplay(),
composerArguments.value!.userProfile.getEmailAddress())
EmailAddress(null, composerArguments.value!.userProfile.email)
};
final generatePartId = PartId(_uuid.v1());
final generateBlobId = Id(_uuid.v1());
@@ -9,8 +9,8 @@ import 'package:flutter_svg/flutter_svg.dart';
import 'package:get/get.dart';
import 'package:jmap_dart_client/jmap/mail/email/email_address.dart';
import 'package:model/model.dart';
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
import 'package:tmail_ui_user/features/composer/presentation/extensions/prefix_email_address_extension.dart';
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
typedef OnOpenExpandAddressActionClick = void Function();
typedef OnSuggestionEmailAddress = Future<List<EmailAddress>> Function(String word);
@@ -88,14 +88,10 @@ class EmailAddressComposerWidgetBuilder {
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
if (_userProfile?.getFullName().isNotEmpty == true)
Text(
'${_userProfile?.getFullName()}',
style: TextStyle(fontWeight: FontWeight.w500, fontSize: 14, color: AppColor.nameUserColor)),
if (_userProfile?.getEmailAddress()?.isNotEmpty == true)
Text(
'<${_userProfile?.getEmailAddress()}>',
style: TextStyle(fontSize: 14, color: AppColor.nameUserColor))
Text(
'<${_userProfile?.email}>',
style: TextStyle(fontSize: 14, color: AppColor.nameUserColor)
)
],
)
)
@@ -1,20 +1,14 @@
import 'package:model/model.dart';
import 'package:tmail_ui_user/features/login/data/datasource/authentication_datasource.dart';
import 'package:tmail_ui_user/features/login/data/network/login_api.dart';
class AuthenticationDataSourceImpl extends AuthenticationDataSource {
final LoginAPI loginAPI;
AuthenticationDataSourceImpl(this.loginAPI);
AuthenticationDataSourceImpl();
@override
Future<UserProfile> authenticationUser(Uri baseUrl, UserName userName, Password password) {
return Future.sync(() async {
final userProfileResponse = await loginAPI.authenticationUser(baseUrl, AccountRequest(userName, password));
return userProfileResponse.toUserProfile();
}).catchError((error) {
throw error;
return Future.sync(() {
return UserProfile(userName.userName);
});
}
}
@@ -1,28 +0,0 @@
import 'dart:async';
import 'dart:convert';
import 'dart:io';
import 'package:core/core.dart';
import 'package:dio/dio.dart';
import 'package:model/model.dart';
class LoginAPI {
final DioClient _dioClient;
LoginAPI(this._dioClient);
Future<UserProfileResponse> authenticationUser(Uri baseUrl, AccountRequest accountRequest) async {
final basicAuth = 'Basic ' + base64Encode(utf8.encode('${accountRequest.userName.userName}:${accountRequest.password.value}'));
final resultJson = await _dioClient.post(
Endpoint.authentication.generateAuthenticationUrl(baseUrl),
options: Options(headers: _buildHeaderRequestParam(basicAuth)),
data: accountRequest.toJson());
return UserProfileResponse.fromJson(resultJson);
}
Map<String, dynamic> _buildHeaderRequestParam(String authorizationHeader) {
final headerParam = _dioClient.getHeaders();
headerParam[HttpHeaders.authorizationHeader] = authorizationHeader;
return headerParam;
}
}
@@ -3,7 +3,6 @@ import 'package:get/get.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:tmail_ui_user/features/login/data/datasource/authentication_datasource.dart';
import 'package:tmail_ui_user/features/login/data/datasource_impl/authentication_datasource_impl.dart';
import 'package:tmail_ui_user/features/login/data/network/login_api.dart';
import 'package:tmail_ui_user/features/login/data/repository/authentication_repository_impl.dart';
import 'package:tmail_ui_user/features/login/data/repository/credential_repository_impl.dart';
import 'package:tmail_ui_user/features/login/domain/repository/authentication_repository.dart';
@@ -14,7 +13,7 @@ import 'package:tmail_ui_user/features/login/presentation/login_controller.dart'
class LoginBindings extends Bindings {
@override
void dependencies() {
Get.lazyPut(() => AuthenticationDataSourceImpl(Get.find<LoginAPI>()));
Get.lazyPut(() => AuthenticationDataSourceImpl());
Get.lazyPut<AuthenticationDataSource>(() => Get.find<AuthenticationDataSourceImpl>());
Get.lazyPut(() => CredentialRepositoryImpl(Get.find<SharedPreferences>()));
@@ -42,21 +42,11 @@ class UserInformationWidgetBuilder {
title: Transform(
transform: Matrix4.translationValues(0.0, 0.0, 0.0),
child: Text(
_userProfile != null ? _userProfile!.getNameDisplay() : '',
_userProfile != null ? _userProfile!.email : '',
maxLines: 1,
overflow: TextOverflow.ellipsis,
style: TextStyle(fontSize: 16, color: AppColor.nameUserColor, fontWeight: FontWeight.w500),
)),
subtitle: (_userProfile != null && !_userProfile!.isUserEmpty())
? Transform(
transform: Matrix4.translationValues(0.0, 4.0, 0.0),
child: Text(
_userProfile!.getEmailAddress() ?? '',
maxLines: 1,
overflow: TextOverflow.ellipsis,
style: TextStyle(fontSize: 12, color: AppColor.emailUserColor, fontWeight: FontWeight.w500),
))
: null,
trailing: Transform(
transform: Matrix4.translationValues(0.0, 0.0, 0.0),
child: IconButton(
@@ -6,7 +6,6 @@ import 'package:flutter/foundation.dart';
import 'package:get/get.dart';
import 'package:jmap_dart_client/http/http_client.dart' as JmapHttpClient;
import 'package:tmail_ui_user/features/email/data/network/email_api.dart';
import 'package:tmail_ui_user/features/login/data/network/login_api.dart';
import 'package:tmail_ui_user/features/mailbox/data/network/mailbox_api.dart';
import 'package:tmail_ui_user/features/session/data/network/session_api.dart';
import 'package:tmail_ui_user/features/thread/data/network/thread_api.dart';
@@ -46,7 +45,6 @@ class NetworkBindings extends Bindings {
void _bindingApi() {
Get.put(DioClient(Get.find<Dio>()));
Get.put(JmapHttpClient.HttpClient(Get.find<Dio>()));
Get.put(LoginAPI(Get.find<DioClient>()));
Get.put(MailboxAPI(Get.find<JmapHttpClient.HttpClient>()));
Get.put(SessionAPI(Get.find<JmapHttpClient.HttpClient>()));
Get.put(ThreadAPI(Get.find<JmapHttpClient.HttpClient>()));