mirror of
https://github.com/hexastack/hexabot
synced 2025-06-26 18:27:28 +00:00
fix: prioritize exact outcome matches over any in block matching
This commit is contained in:
parent
5b2bfd0f46
commit
0034b8e5bd
@ -357,15 +357,27 @@ export class BlockService extends BaseService<
|
||||
this.filterBlocksByChannel(blocks, event.getHandler().getName()),
|
||||
event.getSender(),
|
||||
);
|
||||
return filteredBlocks.find((b) => {
|
||||
return b.patterns
|
||||
.filter(
|
||||
(p) => typeof p === 'object' && 'type' in p && p.type === 'outcome',
|
||||
)
|
||||
.some((p: PayloadPattern) =>
|
||||
['any', envelope.message.outcome].includes(p.value),
|
||||
);
|
||||
});
|
||||
|
||||
return (
|
||||
filteredBlocks.find((b) =>
|
||||
b.patterns.some(
|
||||
(p) =>
|
||||
typeof p === 'object' &&
|
||||
'type' in p &&
|
||||
p.type === 'outcome' &&
|
||||
p.value === envelope.message.outcome,
|
||||
),
|
||||
) ||
|
||||
filteredBlocks.find((b) =>
|
||||
b.patterns.some(
|
||||
(p) =>
|
||||
typeof p === 'object' &&
|
||||
'type' in p &&
|
||||
p.type === 'outcome' &&
|
||||
p.value === 'any',
|
||||
),
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
|
Loading…
Reference in New Issue
Block a user