Skip to content

Commit 1ecd813

Browse files
committed
feat(database):imeplement database create
1 parent 128897c commit 1ecd813

9 files changed

Lines changed: 64 additions & 50 deletions

File tree

dashboard/src/pages/business/database/blocks/postgre.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
import React from 'react'
2-
import { DatabaseConnectionConfig } from '../../../../types'
2+
import { DatabaseConnectConfig } from "@/api/openapi";
33
import styles from '../style/blocks.module.less';
44
import { Button, Card,Typography } from '@arco-design/web-react';
55
const { Text, Title } = Typography;
66

77
interface PostgresProps {
8-
config: DatabaseConnectionConfig
8+
config: DatabaseConnectConfig
99
}
1010
const Postgres = ({config}:PostgresProps)=>{
1111
return (

dashboard/src/pages/business/database/blocks/redis.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
import React from 'react'
2-
import { DatabaseConnectionConfig } from '../../../../types'
32
import styles from '../style/blocks.module.less';
43
import { Button, Card,Typography } from '@arco-design/web-react';
54
const { Text, Title } = Typography;
5+
import { DatabaseConnectConfig } from "@/api/openapi";
66

77
interface RedisProps {
8-
config: DatabaseConnectionConfig
8+
config: DatabaseConnectConfig
99
}
1010
const Redis = ({config}:RedisProps)=>{
1111
return (

dashboard/src/pages/business/database/create-database-editor.tsx

Lines changed: 25 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -42,13 +42,13 @@ const CreateDatabase = () => {
4242
form.validate().then((res)=>{
4343
const config:DatabaseConnectConfig = {
4444
title: res.title,
45-
"id": uuid(),
46-
"databaseType":"redis",
47-
"host": res.host,
48-
"port": Number(res.port),
49-
"username":"",
45+
id: uuid(),
46+
databaseType:"redis",
47+
host: res.host,
48+
port: Number(res.port),
49+
username:"",
5050
password: res?.password || "",
51-
"database":""
51+
database:""
5252
}
5353
console.log(config)
5454
axios.post("/admin/v1/database/test", config).then((res) => {
@@ -77,11 +77,27 @@ const CreateDatabase = () => {
7777
onOk={()=>{
7878
form.validate().then((res)=>{
7979
setConfirmLoading(true);
80-
console.log(res)
81-
createDatabase(res).then((res)=>{
80+
81+
const config:DatabaseConnectConfig = {
82+
title: res?.title || "",
83+
id: uuid(),
84+
databaseType: res.type,
85+
host: res.host,
86+
port: Number(res.port),
87+
username: res?.username || "",
88+
password: res?.password || "",
89+
database: res?.database || ""
90+
}
91+
92+
console.log(config)
93+
createDatabase(config).then(()=>{
8294
toast.success("create success");
95+
setConfirmLoading(false);
96+
setVisible(false);
97+
}).catch((err)=>{
98+
toast.error(err.response.data.msg);
99+
setConfirmLoading(false);
83100
})
84-
setConfirmLoading(false);
85101
})
86102
}}
87103

dashboard/src/pages/business/database/overview.tsx

Lines changed: 23 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,18 @@
1-
import React, { useEffect, useState } from "react";
2-
import { Card, Divider, Typography,Grid } from "@arco-design/web-react";
3-
import { DatabaseConnectionConfig } from "../../../types";
4-
import axios from "axios";
1+
import React from "react";
2+
import { Card, Divider, Typography,Grid, Skeleton } from "@arco-design/web-react";
53
import Redis from "./blocks/redis";
64
import Postgres from "./blocks/postgre";
75
import CreateDatabase from "./create-database-editor";
6+
import { useDatabase } from "@/api";
87

98

109
const { Row, Col } = Grid;
1110
const { Title } = Typography;
1211

1312
const Overview = () => {
1413

15-
// TODO extract to a hook
16-
const [data, setData] = useState<DatabaseConnectionConfig[]>([]);
17-
18-
const fetchData = () => {
19-
axios.get('/admin/v1/database').then((res) => {
20-
setData(res.data.dataSourceConfig);
21-
});
22-
}
14+
const {database,isLoading} = useDatabase();
2315

24-
useEffect(() => {
25-
fetchData()
26-
}, []);
2716
return (
2817
<Card>
2918
<Typography.Title heading={5}>
@@ -34,36 +23,40 @@ const Overview = () => {
3423

3524
<Title heading={6}>Redis</Title>
3625

37-
<Row>
26+
<Row gutter={20}>
27+
<Skeleton loading={isLoading} text={{ rows: 2, width: 60 }} animation>
3828
{
39-
data
29+
database
4030
.filter((item) => item.databaseType === 'redis')
4131
.map((item) => (
4232
<Col key={`database-item-${item.id}`} span={6}>
4333
<Redis config={item} />
4434
</Col>
4535
))
4636
}
37+
</Skeleton>
4738
</Row>
4839

4940
<Divider />
5041

5142
<div>
5243
<Title heading={6}>Postgres</Title>
5344

54-
<Row>
55-
{
56-
data
57-
.filter((item) => item.databaseType === 'postgres')
58-
.map((item) => (
59-
<>
60-
<Col key={item.id} span={6}>
61-
<Postgres config={item} />
62-
</Col>
63-
</>
64-
))
65-
}
66-
</Row>
45+
<Row gutter={20}>
46+
<Skeleton loading={isLoading} text={{ rows: 2, width: 60 }} animation>
47+
{
48+
database
49+
.filter((item) => item.databaseType === 'postgres')
50+
.map((item) => (
51+
<>
52+
<Col key={item.id} span={6}>
53+
<Postgres config={item} />
54+
</Col>
55+
</>
56+
))
57+
}
58+
</Skeleton>
59+
</Row>
6760
</div>
6861

6962

dashboard/src/pages/business/workplace/business-item.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
import { Button, Card, Drawer, Grid, Skeleton, Typography } from '@arco-design/web-react';
2-
import React, { useState, useEffect } from 'react';
2+
import React, { useState } from 'react';
33
import styles from './style/overview.module.less';
44
import BusinessEditor from './business-editor';
5-
import { BusinessType } from '../../../types/type';
5+
import { Business } from '@/api/openapi';
66

77
const { Row, Col } = Grid;
88

99
const { Title,Text } = Typography;
1010
interface BusinessItemProps {
11-
business: BusinessType;
11+
business: Business;
1212
}
1313

1414
const BusinessItem = ({business}:BusinessItemProps) => {

dashboard/src/pages/business/workplace/overview.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import {
88
} from '@arco-design/web-react';
99
import styles from './style/overview.module.less';
1010
import BusinessItem from './business-item';
11-
import { BusinessType } from '@/types';
1211
import CreateBusinessEditor from './create-business-editor';
1312
import { useBusiness } from '@/api';
1413

dashboard/src/types/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ interface DatabaseConnectionConfig{
99
database: string;
1010
}
1111
type BusinessType = {
12-
title: string;
12+
title?: string;
1313
id: string;
1414
type: string;
1515
};

internal/adapter/in/restful/route/admin_server.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,12 @@ func (a *adminApiService) GetDatabaseConfigureList(ctx echo.Context) error {
222222
}
223223

224224
func (a *adminApiService) CreateDatabase(ctx echo.Context) error {
225-
err := a.databaseUseCase.CreateDatabase(ctx.Request().Context(), domain.DatabaseConnectConfig{})
225+
var databaseConnectConfig codegen.DatabaseConnectConfig
226+
if err := ctx.Bind(&databaseConnectConfig); err != nil {
227+
return ctx.JSON(http.StatusBadRequest, err)
228+
}
229+
230+
err := a.databaseUseCase.CreateDatabase(ctx.Request().Context(), convertDatabaseConnectConfig(databaseConnectConfig))
226231
if err != nil {
227232
return ctx.JSON(http.StatusInternalServerError, codegen.ResponseInternalServerError{
228233
Status: utils.Ptr("error"),

internal/adapter/out/admin/database_adapter.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,8 @@ func NewDatabaseAdapter(config domain.PostgresConfig) out.DatabasePort {
3030
}
3131

3232
func (d *DatabaseAdapter) CreateDatabaseConnectConfig(config domain.DatabaseConnectConfig) error {
33-
return d.db.Create(&config).Error
33+
fmt.Println(config)
34+
return d.db.Create(config).Error
3435
}
3536

3637
func (d *DatabaseAdapter) DatabaseConnectConfig(configId string) (domain.DatabaseConnectConfig, error) {

0 commit comments

Comments
 (0)