balibabu
commited on
Commit
·
eb002c7
1
Parent(s):
6b7630c
feat: Test the database connection of the ExeSQL operator #1739 (#2036)
Browse files### What problem does this PR solve?
feat: Test the database connection of the ExeSQL operator #1739
### Type of change
- [x] New Feature (non-breaking change which adds functionality)
- web/.umirc.ts +1 -1
- web/src/hooks/flow-hooks.ts +21 -0
- web/src/pages/flow/exesql-form/index.tsx +14 -1
- web/src/services/flow-service.ts +5 -0
- web/src/utils/api.ts +1 -0
web/.umirc.ts
CHANGED
@@ -30,7 +30,7 @@ export default defineConfig({
|
|
30 |
copy: ['src/conf.json'],
|
31 |
proxy: {
|
32 |
'/v1': {
|
33 |
-
target: 'http://
|
34 |
changeOrigin: true,
|
35 |
ws: true,
|
36 |
logger: console,
|
|
|
30 |
copy: ['src/conf.json'],
|
31 |
proxy: {
|
32 |
'/v1': {
|
33 |
+
target: 'http://localhost:9380/',
|
34 |
changeOrigin: true,
|
35 |
ws: true,
|
36 |
logger: console,
|
web/src/hooks/flow-hooks.ts
CHANGED
@@ -191,3 +191,24 @@ export const useResetFlow = () => {
|
|
191 |
|
192 |
return { data, loading, resetFlow: mutateAsync };
|
193 |
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
191 |
|
192 |
return { data, loading, resetFlow: mutateAsync };
|
193 |
};
|
194 |
+
|
195 |
+
export const useTestDbConnect = () => {
|
196 |
+
const {
|
197 |
+
data,
|
198 |
+
isPending: loading,
|
199 |
+
mutateAsync,
|
200 |
+
} = useMutation({
|
201 |
+
mutationKey: ['testDbConnect'],
|
202 |
+
mutationFn: async (params: any) => {
|
203 |
+
const ret = await flowService.testDbConnect(params);
|
204 |
+
if (ret?.retcode === 0) {
|
205 |
+
message.success(ret?.data?.data);
|
206 |
+
} else {
|
207 |
+
message.error(ret?.data?.data);
|
208 |
+
}
|
209 |
+
return ret;
|
210 |
+
},
|
211 |
+
});
|
212 |
+
|
213 |
+
return { data, loading, testDbConnect: mutateAsync };
|
214 |
+
};
|
web/src/pages/flow/exesql-form/index.tsx
CHANGED
@@ -1,11 +1,19 @@
|
|
1 |
import TopNItem from '@/components/top-n-item';
|
2 |
import { useTranslate } from '@/hooks/common-hooks';
|
3 |
-
import {
|
|
|
|
|
4 |
import { ExeSQLOptions } from '../constant';
|
5 |
import { IOperatorForm } from '../interface';
|
6 |
|
7 |
const ExeSQLForm = ({ onValuesChange, form }: IOperatorForm) => {
|
8 |
const { t } = useTranslate('flow');
|
|
|
|
|
|
|
|
|
|
|
|
|
9 |
|
10 |
return (
|
11 |
<Form
|
@@ -59,6 +67,11 @@ const ExeSQLForm = ({ onValuesChange, form }: IOperatorForm) => {
|
|
59 |
<InputNumber></InputNumber>
|
60 |
</Form.Item>
|
61 |
<TopNItem initialValue={30} max={1000}></TopNItem>
|
|
|
|
|
|
|
|
|
|
|
62 |
</Form>
|
63 |
);
|
64 |
};
|
|
|
1 |
import TopNItem from '@/components/top-n-item';
|
2 |
import { useTranslate } from '@/hooks/common-hooks';
|
3 |
+
import { useTestDbConnect } from '@/hooks/flow-hooks';
|
4 |
+
import { Button, Flex, Form, Input, InputNumber, Select } from 'antd';
|
5 |
+
import { useCallback } from 'react';
|
6 |
import { ExeSQLOptions } from '../constant';
|
7 |
import { IOperatorForm } from '../interface';
|
8 |
|
9 |
const ExeSQLForm = ({ onValuesChange, form }: IOperatorForm) => {
|
10 |
const { t } = useTranslate('flow');
|
11 |
+
const { testDbConnect, loading } = useTestDbConnect();
|
12 |
+
|
13 |
+
const handleTest = useCallback(async () => {
|
14 |
+
const ret = await form?.validateFields();
|
15 |
+
testDbConnect(ret);
|
16 |
+
}, [form, testDbConnect]);
|
17 |
|
18 |
return (
|
19 |
<Form
|
|
|
67 |
<InputNumber></InputNumber>
|
68 |
</Form.Item>
|
69 |
<TopNItem initialValue={30} max={1000}></TopNItem>
|
70 |
+
<Flex justify={'end'}>
|
71 |
+
<Button type={'primary'} loading={loading} onClick={handleTest}>
|
72 |
+
Test
|
73 |
+
</Button>
|
74 |
+
</Flex>
|
75 |
</Form>
|
76 |
);
|
77 |
};
|
web/src/services/flow-service.ts
CHANGED
@@ -10,6 +10,7 @@ const {
|
|
10 |
removeCanvas,
|
11 |
runCanvas,
|
12 |
listTemplates,
|
|
|
13 |
} = api;
|
14 |
|
15 |
const methods = {
|
@@ -41,6 +42,10 @@ const methods = {
|
|
41 |
url: listTemplates,
|
42 |
method: 'get',
|
43 |
},
|
|
|
|
|
|
|
|
|
44 |
} as const;
|
45 |
|
46 |
const chatService = registerServer<keyof typeof methods>(methods, request);
|
|
|
10 |
removeCanvas,
|
11 |
runCanvas,
|
12 |
listTemplates,
|
13 |
+
testDbConnect,
|
14 |
} = api;
|
15 |
|
16 |
const methods = {
|
|
|
42 |
url: listTemplates,
|
43 |
method: 'get',
|
44 |
},
|
45 |
+
testDbConnect: {
|
46 |
+
url: testDbConnect,
|
47 |
+
method: 'post',
|
48 |
+
},
|
49 |
} as const;
|
50 |
|
51 |
const chatService = registerServer<keyof typeof methods>(methods, request);
|
web/src/utils/api.ts
CHANGED
@@ -94,4 +94,5 @@ export default {
|
|
94 |
setCanvas: `${api_host}/canvas/set`,
|
95 |
resetCanvas: `${api_host}/canvas/reset`,
|
96 |
runCanvas: `${api_host}/canvas/completion`,
|
|
|
97 |
};
|
|
|
94 |
setCanvas: `${api_host}/canvas/set`,
|
95 |
resetCanvas: `${api_host}/canvas/reset`,
|
96 |
runCanvas: `${api_host}/canvas/completion`,
|
97 |
+
testDbConnect: `${api_host}/canvas/test_db_connect`,
|
98 |
};
|