123456789101112131415161718192021222324252627 |
- import {Actor} from 'sentry/types';
- // TODO(ts): add the correct type
- export type Rules = Array<any> | null;
- /**
- * Given a list of rule objects returned from the API, locate the matching
- * rules for a specific owner.
- */
- function findMatchedRules(rules: Rules, owner: Actor) {
- if (!rules) {
- return undefined;
- }
- const matchOwner = (actorType: Actor['type'], key: string) =>
- (actorType === 'user' && key === owner.email) ||
- (actorType === 'team' && key === owner.name);
- const actorHasOwner = ([actorType, key]) =>
- actorType === owner.type && matchOwner(actorType, key);
- return rules
- .filter(([_, ruleActors]) => ruleActors.find(actorHasOwner))
- .map(([rule]) => rule);
- }
- export {findMatchedRules};
|