From 2a2500a28d28e52e989891b5b03c4f4466eeaa64 Mon Sep 17 00:00:00 2001 From: Fine0830 Date: Thu, 5 May 2022 19:12:32 +0800 Subject: [PATCH] fix: verify query params to avoid invalid queries (#77) --- src/store/modules/ebpf.ts | 12 ++++++++++++ src/store/modules/profile.ts | 12 ++++++++++++ .../related/profile/components/TaskList.vue | 1 + 3 files changed, 25 insertions(+) diff --git a/src/store/modules/ebpf.ts b/src/store/modules/ebpf.ts index b03bed73..d59f317b 100644 --- a/src/store/modules/ebpf.ts +++ b/src/store/modules/ebpf.ts @@ -85,6 +85,9 @@ export const ebpfStore = defineStore({ return res.data; }, async getTaskList(serviceId: string) { + if (!serviceId) { + return new Promise((resolve) => resolve({})); + } const res: AxiosResponse = await graphql .query("getEBPFTasks") .params({ serviceId }); @@ -101,6 +104,9 @@ export const ebpfStore = defineStore({ return res.data; }, async getEBPFSchedules(params: { taskId: string; duration?: Duration }) { + if (!params.taskId) { + return new Promise((resolve) => resolve({})); + } const duration = useAppStoreWithOut().durationTime; const res: AxiosResponse = await graphql .query("getEBPFSchedules") @@ -124,6 +130,12 @@ export const ebpfStore = defineStore({ scheduleIdList: string[]; timeRanges: Array<{ start: number; end: number }>; }) { + if (!params.scheduleIdList.length) { + return new Promise((resolve) => resolve({})); + } + if (!params.timeRanges.length) { + return new Promise((resolve) => resolve({})); + } const res: AxiosResponse = await graphql .query("getEBPFResult") .params(params); diff --git a/src/store/modules/profile.ts b/src/store/modules/profile.ts index 6dc8301a..670ccdb3 100644 --- a/src/store/modules/profile.ts +++ b/src/store/modules/profile.ts @@ -122,6 +122,9 @@ export const profileStore = defineStore({ return res.data; }, async getSegmentList(params: { taskID: string }) { + if (!params.taskID) { + return new Promise((resolve) => resolve({})); + } const res: AxiosResponse = await graphql .query("getProfileTaskSegmentList") .params(params); @@ -148,6 +151,9 @@ export const profileStore = defineStore({ return res.data; }, async getSegmentSpans(params: { segmentId: string }) { + if (!params.segmentId) { + return new Promise((resolve) => resolve({})); + } const res: AxiosResponse = await graphql .query("queryProfileSegment") .params(params); @@ -180,6 +186,12 @@ export const profileStore = defineStore({ segmentId: string; timeRanges: Array<{ start: number; end: number }>; }) { + if (!params.segmentId) { + return new Promise((resolve) => resolve({})); + } + if (!params.timeRanges.length) { + return new Promise((resolve) => resolve({})); + } const res: AxiosResponse = await graphql .query("getProfileAnalyze") .params(params); diff --git a/src/views/dashboard/related/profile/components/TaskList.vue b/src/views/dashboard/related/profile/components/TaskList.vue index ce18c162..1b4bd5bc 100644 --- a/src/views/dashboard/related/profile/components/TaskList.vue +++ b/src/views/dashboard/related/profile/components/TaskList.vue @@ -140,6 +140,7 @@ const selectedTask = ref>({}); const instanceLogs = ref({}); async function changeTask(item: TaskListItem) { + profileStore.setCurrentSegment({}); selectedTask.value = item; const res = await profileStore.getSegmentList({ taskID: item.id }); if (res.errors) {