TF-933 Simplify advanced search request

This commit is contained in:
dab246
2022-09-16 13:31:52 +07:00
committed by Dat H. Pham
parent b04ccc6ec0
commit 17ececa2a0
3 changed files with 56 additions and 12 deletions
@@ -59,9 +59,11 @@ class SearchEmailFilter {
);
}
Filter mappingToEmailFilterCondition({Filter? moreFilterCondition}) {
Filter? mappingToEmailFilterCondition({EmailFilterCondition? moreFilterCondition}) {
final emailEmailFilterConditionShared = EmailFilterCondition(
text: text?.value,
text: text?.value.trim().isNotEmpty == true
? text?.value
: null,
inMailbox: mailbox == PresentationMailbox.unifiedMailbox
? null
: mailbox?.id,
@@ -70,16 +72,29 @@ class SearchEmailFilter {
subject: subject,
before: before,
);
return LogicFilterOperator(Operator.AND, {
emailEmailFilterConditionShared,
LogicFilterOperator(
Operator.AND, to.map((e) => EmailFilterCondition(to: e)).toSet()),
LogicFilterOperator(
Operator.AND, from.map((e) => EmailFilterCondition(from: e)).toSet()),
LogicFilterOperator(
Operator.AND, notKeyword.map((e) => EmailFilterCondition(notKeyword: e)).toSet()),
if(moreFilterCondition !=null) moreFilterCondition
});
final listEmailCondition = {
if (emailEmailFilterConditionShared.hasCondition)
emailEmailFilterConditionShared,
if (to.isNotEmpty)
LogicFilterOperator(
Operator.AND,
to.map((e) => EmailFilterCondition(to: e)).toSet()),
if (from.isNotEmpty)
LogicFilterOperator(
Operator.AND,
from.map((e) => EmailFilterCondition(from: e)).toSet()),
if (notKeyword.isNotEmpty)
LogicFilterOperator(
Operator.AND,
notKeyword.map((e) => EmailFilterCondition(notKeyword: e)).toSet()),
if (moreFilterCondition != null && moreFilterCondition.hasCondition)
moreFilterCondition
};
return listEmailCondition.isNotEmpty
? LogicFilterOperator(Operator.AND, listEmailCondition)
: null;
}
}