Files
2024-02-15 17:01:50 +00:00

36 lines
855 B
TypeScript

import type {Client} from 'sentry/api';
import type {MetricRule, SavedMetricRule} from './types';
function isSavedRule(rule: MetricRule): rule is SavedMetricRule {
return !!rule.id;
}
/**
* Add a new rule or update an existing rule
*
* @param api API Client
* @param orgId Organization slug
* @param rule Saved or Unsaved Metric Rule
* @param query Query parameters for the request eg - referrer
*/
export function addOrUpdateRule(
api: Client,
orgId: string,
rule: MetricRule,
query?: object | any
) {
const isExisting = isSavedRule(rule);
const endpoint = isExisting
? `/organizations/${orgId}/alert-rules/${rule.id}/`
: `/organizations/${orgId}/alert-rules/`;
const method = isExisting ? 'PUT' : 'POST';
return api.requestPromise(endpoint, {
method,
data: rule,
query,
includeAllArgs: true,
});
}