Skip to content

Commit 557d154

Browse files
committed
updating filter to return waitlist lottery
1 parent 53049f6 commit 557d154

1 file changed

Lines changed: 65 additions & 8 deletions

File tree

api/src/services/listing.service.ts

Lines changed: 65 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -522,17 +522,56 @@ export class ListingService implements OnModuleInit {
522522
return builtFilter.map((filt) => ({
523523
marketingType: filt,
524524
}));
525-
} else if (
526-
availability === FilterAvailabilityEnum.openWaitlist ||
527-
availability === FilterAvailabilityEnum.waitlistOpen
528-
) {
525+
} else if (availability === FilterAvailabilityEnum.openWaitlist) {
529526
const builtFilter = buildFilter({
530-
$comparison: Compare.IN,
527+
$comparison: Compare['='],
531528
$include_nulls: false,
532-
value: [
533-
ReviewOrderTypeEnum.waitlist,
534-
ReviewOrderTypeEnum.waitlistLottery,
529+
value: true,
530+
key: ListingFilterKeys.availabilities,
531+
caseSensitive: true,
532+
});
533+
const reviewOrderFilter = buildFilter({
534+
$comparison: Compare['='],
535+
$include_nulls: false,
536+
value: ReviewOrderTypeEnum.waitlistLottery,
537+
key: ListingFilterKeys.availabilities,
538+
caseSensitive: true,
539+
});
540+
return {
541+
OR: [
542+
{
543+
AND: builtFilter
544+
.map((filt) => ({
545+
unitGroups: {
546+
some: {
547+
[FilterAvailabilityEnum.openWaitlist]: filt,
548+
},
549+
},
550+
}))
551+
.concat(
552+
notUnderConstruction.map((filt) => ({
553+
marketingType: filt,
554+
})),
555+
),
556+
},
557+
{
558+
AND: reviewOrderFilter
559+
.map((filt) => ({
560+
reviewOrderType: filt,
561+
}))
562+
.concat(
563+
notUnderConstruction.map((filt) => ({
564+
marketingType: filt,
565+
})),
566+
),
567+
},
535568
],
569+
};
570+
} else if (availability === FilterAvailabilityEnum.waitlistOpen) {
571+
const builtFilter = buildFilter({
572+
$comparison: Compare['='],
573+
$include_nulls: false,
574+
value: ReviewOrderTypeEnum.waitlist,
536575
key: ListingFilterKeys.availabilities,
537576
caseSensitive: true,
538577
});
@@ -624,6 +663,13 @@ export class ListingService implements OnModuleInit {
624663
key: ListingFilterKeys.availability,
625664
caseSensitive: true,
626665
});
666+
const reviewOrderFilter = buildFilter({
667+
$comparison: filter.$comparison,
668+
$include_nulls: false,
669+
value: ReviewOrderTypeEnum.waitlistLottery,
670+
key: ListingFilterKeys.availability,
671+
caseSensitive: true,
672+
});
627673
filters.push({
628674
OR: [
629675
{
@@ -639,6 +685,17 @@ export class ListingService implements OnModuleInit {
639685
})),
640686
),
641687
},
688+
{
689+
AND: reviewOrderFilter
690+
.map((filt) => ({
691+
reviewOrderType: filt,
692+
}))
693+
.concat(
694+
notUnderConstruction.map((filt) => ({
695+
marketingType: filt,
696+
})),
697+
),
698+
},
642699
],
643700
});
644701
} else if (

0 commit comments

Comments
 (0)