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()),
|
this.filterBlocksByChannel(blocks, event.getHandler().getName()),
|
||||||
event.getSender(),
|
event.getSender(),
|
||||||
);
|
);
|
||||||
return filteredBlocks.find((b) => {
|
|
||||||
return b.patterns
|
return (
|
||||||
.filter(
|
filteredBlocks.find((b) =>
|
||||||
(p) => typeof p === 'object' && 'type' in p && p.type === 'outcome',
|
b.patterns.some(
|
||||||
)
|
(p) =>
|
||||||
.some((p: PayloadPattern) =>
|
typeof p === 'object' &&
|
||||||
['any', envelope.message.outcome].includes(p.value),
|
'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