mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Alerting: Remove duplicated alertRule handlers file and usage (#89100)
This commit is contained in:
parent
72241dbf5f
commit
2dd44e2f58
@ -21,7 +21,6 @@ const allHandlers = [
|
|||||||
...folderHandlers,
|
...folderHandlers,
|
||||||
...pluginsHandlers,
|
...pluginsHandlers,
|
||||||
...silenceHandlers,
|
...silenceHandlers,
|
||||||
...alertRuleHandlers,
|
|
||||||
];
|
];
|
||||||
|
|
||||||
export default allHandlers;
|
export default allHandlers;
|
||||||
|
@ -1,75 +0,0 @@
|
|||||||
import { http, HttpResponse } from 'msw';
|
|
||||||
|
|
||||||
import {
|
|
||||||
RulerGrafanaRuleDTO,
|
|
||||||
RulerRuleGroupDTO,
|
|
||||||
RulerRulesConfigDTO,
|
|
||||||
} from '../../../../../../types/unified-alerting-dto';
|
|
||||||
import { grafanaRulerRule, namespaceByUid, namespaces } from '../../alertRuleApi';
|
|
||||||
|
|
||||||
export const rulerRulesHandler = () => {
|
|
||||||
return http.get(`/api/ruler/grafana/api/v1/rules`, () => {
|
|
||||||
const response = Object.entries(namespaces).reduce<RulerRulesConfigDTO>((acc, [namespaceUid, groups]) => {
|
|
||||||
acc[namespaceByUid[namespaceUid].name] = groups;
|
|
||||||
return acc;
|
|
||||||
}, {});
|
|
||||||
|
|
||||||
return HttpResponse.json<RulerRulesConfigDTO>(response);
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
export const rulerRuleNamespaceHandler = () => {
|
|
||||||
return http.get<{ folderUid: string }>(`/api/ruler/grafana/api/v1/rules/:folderUid`, ({ params: { folderUid } }) => {
|
|
||||||
// This mimic API response as closely as possible - Invalid folderUid returns 403
|
|
||||||
const namespace = namespaces[folderUid];
|
|
||||||
if (!namespace) {
|
|
||||||
return new HttpResponse(null, { status: 403 });
|
|
||||||
}
|
|
||||||
|
|
||||||
return HttpResponse.json<RulerRulesConfigDTO>({
|
|
||||||
[namespaceByUid[folderUid].name]: namespaces[folderUid],
|
|
||||||
});
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
export const rulerRuleGroupHandler = () => {
|
|
||||||
return http.get<{ folderUid: string; groupName: string }>(
|
|
||||||
`/api/ruler/grafana/api/v1/rules/:folderUid/:groupName`,
|
|
||||||
({ params: { folderUid, groupName } }) => {
|
|
||||||
// This mimic API response as closely as possible.
|
|
||||||
// Invalid folderUid returns 403 but invalid group will return 202 with empty list of rules
|
|
||||||
const namespace = namespaces[folderUid];
|
|
||||||
if (!namespace) {
|
|
||||||
return new HttpResponse(null, { status: 403 });
|
|
||||||
}
|
|
||||||
|
|
||||||
const matchingGroup = namespace.find((group) => group.name === groupName);
|
|
||||||
return HttpResponse.json<RulerRuleGroupDTO>({
|
|
||||||
name: groupName,
|
|
||||||
interval: matchingGroup?.interval,
|
|
||||||
rules: matchingGroup?.rules ?? [],
|
|
||||||
});
|
|
||||||
}
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
export const getAlertRuleHandler = () => {
|
|
||||||
const grafanaRules = new Map<string, RulerGrafanaRuleDTO>(
|
|
||||||
[grafanaRulerRule].map((rule) => [rule.grafana_alert.uid, rule])
|
|
||||||
);
|
|
||||||
|
|
||||||
return http.get<{ uid: string }>(`/api/ruler/grafana/api/v1/rule/:uid`, ({ params: { uid } }) => {
|
|
||||||
const rule = grafanaRules.get(uid);
|
|
||||||
if (!rule) {
|
|
||||||
return new HttpResponse(null, { status: 404 });
|
|
||||||
}
|
|
||||||
return HttpResponse.json(rule);
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
export const alertRuleHandlers = [
|
|
||||||
rulerRulesHandler(),
|
|
||||||
rulerRuleNamespaceHandler(),
|
|
||||||
rulerRuleGroupHandler(),
|
|
||||||
getAlertRuleHandler(),
|
|
||||||
];
|
|
Loading…
Reference in New Issue
Block a user