TF-3767 Use TupleKey to save recent search for each account
Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
@@ -378,8 +378,16 @@ class SearchEmailController extends BaseController
|
||||
}
|
||||
|
||||
Future<List<RecentSearch>> getAllRecentSearchAction({String pattern = ''}) async {
|
||||
final accountId = mailboxDashBoardController.accountId.value;
|
||||
final userName = mailboxDashBoardController.sessionCurrent?.username;
|
||||
|
||||
if (accountId == null || userName == null) {
|
||||
logError('SearchEmailController::getAllRecentSearchAction: accountId or userName is null');
|
||||
return <RecentSearch>[];
|
||||
}
|
||||
|
||||
return _getAllRecentSearchLatestInteractor
|
||||
.execute(pattern: pattern)
|
||||
.execute(accountId, userName, pattern: pattern)
|
||||
.then((result) => result.fold(
|
||||
(failure) => <RecentSearch>[],
|
||||
(success) => success is GetAllRecentSearchLatestSuccess
|
||||
@@ -406,8 +414,20 @@ class SearchEmailController extends BaseController
|
||||
: <PresentationEmail>[]));
|
||||
}
|
||||
|
||||
void saveRecentSearch(RecentSearch recentSearch) {
|
||||
consumeState(_saveRecentSearchInteractor.execute(recentSearch));
|
||||
void saveRecentSearch(String queryString) {
|
||||
final accountId = mailboxDashBoardController.accountId.value;
|
||||
final userName = mailboxDashBoardController.sessionCurrent?.username;
|
||||
|
||||
if (accountId == null || userName == null) {
|
||||
logError('SearchEmailController::_saveRecentSearch: accountId or userName is null');
|
||||
return;
|
||||
}
|
||||
|
||||
consumeState(_saveRecentSearchInteractor.execute(
|
||||
accountId,
|
||||
userName,
|
||||
RecentSearch.now(queryString),
|
||||
));
|
||||
}
|
||||
|
||||
void _searchEmailAction(BuildContext context) {
|
||||
@@ -770,7 +790,7 @@ class SearchEmailController extends BaseController
|
||||
void onTextSearchSubmitted(BuildContext context, String text) {
|
||||
final queryString = text.trim();
|
||||
if (queryString.isNotEmpty) {
|
||||
saveRecentSearch(RecentSearch.now(queryString));
|
||||
saveRecentSearch(queryString);
|
||||
}
|
||||
_searchEmailByQueryString(context: context, queryString: queryString);
|
||||
}
|
||||
|
||||
@@ -487,7 +487,7 @@ class SearchEmailView extends GetWidget<SearchEmailController>
|
||||
onTap: () {
|
||||
final query = textSearch.trim();
|
||||
if (query.isNotEmpty) {
|
||||
controller.saveRecentSearch(RecentSearch.now(query));
|
||||
controller.saveRecentSearch(query);
|
||||
controller.showAllResultSearchAction(context, query);
|
||||
}
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user