mirror of
https://github.com/OneUptime/oneuptime.git
synced 2026-04-06 00:32:12 +02:00
feat: refactor notification rule models to use BaseNotificationRule and update filter conditions
This commit is contained in:
@@ -16,7 +16,7 @@ import IconProp from "../../Types/Icon/IconProp";
|
||||
import ObjectID from "../../Types/ObjectID";
|
||||
import { Column, Entity, Index, JoinColumn, ManyToOne } from "typeorm";
|
||||
import ServiceProviderType from "../../Types/ServiceProvider/ServiceProviderType";
|
||||
import SlackNotificationRule from "../../Types/ServiceProvider/NotificationRules/SlackNotificationRule";
|
||||
import BaseNotificationRule from "../../Types/ServiceProvider/NotificationRules/BaseNotificationRule";
|
||||
import NotificationRuleEventType from "../../Types/ServiceProvider/NotificationRules/EventType";
|
||||
|
||||
|
||||
@@ -104,7 +104,7 @@ class ServiceProviderNotificationRule extends BaseModel {
|
||||
unique: false,
|
||||
nullable: false,
|
||||
})
|
||||
public notificationRule?: SlackNotificationRule = undefined;
|
||||
public notificationRule?: BaseNotificationRule = undefined;
|
||||
|
||||
@ColumnAccessControl({
|
||||
create: [],
|
||||
|
||||
@@ -19,7 +19,6 @@ import { JSONObject } from "Common/Types/JSON";
|
||||
import {
|
||||
CheckOn,
|
||||
CriteriaFilter,
|
||||
FilterCondition,
|
||||
} from "Common/Types/Monitor/CriteriaFilter";
|
||||
import IncomingMonitorRequest from "Common/Types/Monitor/IncomingMonitor/IncomingMonitorRequest";
|
||||
import MonitorCriteria from "Common/Types/Monitor/MonitorCriteria";
|
||||
@@ -57,6 +56,7 @@ import MonitorMetricType from "../../../Types/Monitor/MonitorMetricType";
|
||||
import TelemetryUtil from "../Telemetry/Telemetry";
|
||||
import MetricMonitorCriteria from "./Criteria/MetricMonitorCriteria";
|
||||
import MetricMonitorResponse from "../../../Types/Monitor/MetricMonitor/MetricMonitorResponse";
|
||||
import FilterCondition from "../../../Types/Filter/FilterCondition";
|
||||
|
||||
export default class MonitorResourceUtil {
|
||||
public static async monitorResource(
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
enum FilterCondition {
|
||||
And = "And",
|
||||
Or = "Or",
|
||||
All = "All",
|
||||
Any = "Any",
|
||||
}
|
||||
|
||||
export default FilterCondition;
|
||||
|
||||
@@ -110,11 +110,6 @@ export enum FilterType {
|
||||
IsNotExecuting = "Is Not Executing",
|
||||
}
|
||||
|
||||
export enum FilterCondition {
|
||||
All = "All",
|
||||
Any = "Any",
|
||||
}
|
||||
|
||||
export class CriteriaFilterUtil {
|
||||
public static getEvaluateOverTimeTypeByCriteriaFilter(
|
||||
criteriaFilter: CriteriaFilter | undefined,
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import DatabaseProperty from "../Database/DatabaseProperty";
|
||||
import BadDataException from "../Exception/BadDataException";
|
||||
import FilterCondition from "../Filter/FilterCondition";
|
||||
import { JSONObject, ObjectType } from "../JSON";
|
||||
import JSONFunctions from "../JSONFunctions";
|
||||
import ObjectID from "../ObjectID";
|
||||
@@ -8,7 +9,6 @@ import { CriteriaAlert } from "./CriteriaAlert";
|
||||
import {
|
||||
CheckOn,
|
||||
CriteriaFilter,
|
||||
FilterCondition,
|
||||
FilterType,
|
||||
EvaluateOverTimeType,
|
||||
} from "./CriteriaFilter";
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
export default interface BaseNotificationRule {
|
||||
_type: string;
|
||||
|
||||
|
||||
}
|
||||
@@ -1,3 +1,7 @@
|
||||
export default interface SlackNotificationRule {
|
||||
|
||||
import FilterCondition from "../../Filter/FilterCondition";
|
||||
import BaseNotificationRule from "./BaseNotificationRule";
|
||||
|
||||
export default interface SlackNotificationRule extends BaseNotificationRule {
|
||||
_type: "SlackNotificationRule";
|
||||
filterCondition: FilterCondition; // and OR or. Default is AND
|
||||
}
|
||||
@@ -4,7 +4,6 @@ import Dictionary from "Common/Types/Dictionary";
|
||||
import IconProp from "Common/Types/Icon/IconProp";
|
||||
import {
|
||||
CriteriaFilter,
|
||||
FilterCondition,
|
||||
} from "Common/Types/Monitor/CriteriaFilter";
|
||||
import { CriteriaIncident } from "Common/Types/Monitor/CriteriaIncident";
|
||||
import MonitorCriteriaInstance from "Common/Types/Monitor/MonitorCriteriaInstance";
|
||||
@@ -34,6 +33,7 @@ import React, {
|
||||
import MonitorCriteriaAlertsForm from "./MonitorCriteriaAlertsForm";
|
||||
import { CriteriaAlert } from "Common/Types/Monitor/CriteriaAlert";
|
||||
import MonitorStep from "Common/Types/Monitor/MonitorStep";
|
||||
import FilterCondition from "Common/Types/Filter/FilterCondition";
|
||||
|
||||
export interface ComponentProps {
|
||||
monitorStatusDropdownOptions: Array<DropdownOption>;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import FilterCondition from "Common/Types/Filter/FilterCondition";
|
||||
import CriteriaFilterUtil from "../../../Utils/Form/Monitor/CriteriaFilter";
|
||||
import {
|
||||
CriteriaFilter,
|
||||
FilterCondition,
|
||||
} from "Common/Types/Monitor/CriteriaFilter";
|
||||
import React, { FunctionComponent, ReactElement } from "react";
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import FilterCondition from "Common/Types/Filter/FilterCondition";
|
||||
import CriteriaFilterElement from "./CriteriaFilter";
|
||||
import {
|
||||
CriteriaFilter,
|
||||
FilterCondition,
|
||||
} from "Common/Types/Monitor/CriteriaFilter";
|
||||
import React, { FunctionComponent, ReactElement } from "react";
|
||||
|
||||
|
||||
@@ -3,7 +3,6 @@ import MonitorCriteriaIncidents from "./MonitorCriteriaIncidents";
|
||||
import { Black } from "Common/Types/BrandColors";
|
||||
import Color from "Common/Types/Color";
|
||||
import IconProp from "Common/Types/Icon/IconProp";
|
||||
import { FilterCondition } from "Common/Types/Monitor/CriteriaFilter";
|
||||
import MonitorCriteriaInstance from "Common/Types/Monitor/MonitorCriteriaInstance";
|
||||
import HorizontalRule from "Common/UI/Components/HorizontalRule/HorizontalRule";
|
||||
import Icon from "Common/UI/Components/Icon/Icon";
|
||||
@@ -14,6 +13,7 @@ import OnCallDutyPolicy from "Common/Models/DatabaseModels/OnCallDutyPolicy";
|
||||
import React, { FunctionComponent, ReactElement } from "react";
|
||||
import MonitorCriteriaAlerts from "./MonitorCriteriaAlerts";
|
||||
import AlertSeverity from "Common/Models/DatabaseModels/AlertSeverity";
|
||||
import FilterCondition from "Common/Types/Filter/FilterCondition";
|
||||
|
||||
export interface ComponentProps {
|
||||
monitorStatusOptions: Array<MonitorStatus>;
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import FilterCondition from "Common/Types/Filter/FilterCondition";
|
||||
import {
|
||||
CheckOn,
|
||||
CriteriaFilter,
|
||||
EvaluateOverTimeMinutes,
|
||||
EvaluateOverTimeType,
|
||||
FilterCondition,
|
||||
FilterType,
|
||||
} from "Common/Types/Monitor/CriteriaFilter";
|
||||
import MonitorType from "Common/Types/Monitor/MonitorType";
|
||||
|
||||
Reference in New Issue
Block a user