mirror of
https://github.com/ershisan99/db-studio.git
synced 2025-12-16 12:33:05 +00:00
75 lines
1.9 KiB
TypeScript
75 lines
1.9 KiB
TypeScript
import { getValuable } from "@/lib/utils";
|
|
import { dbInstance } from "@/services/db/db.instance";
|
|
import type {
|
|
DatabasesResponse,
|
|
GetTableColumnsArgs,
|
|
GetTableDataArgs,
|
|
GetTableDataResponse,
|
|
GetTableForeignKeysArgs,
|
|
GetTableIndexesArgs,
|
|
GetTablesListArgs,
|
|
GetTablesListResponse,
|
|
QueryRawSqlArgs,
|
|
QueryRawSqlResponse,
|
|
TableColumns,
|
|
TableForeignKeys,
|
|
TableIndexes,
|
|
} from "@/services/db/db.types";
|
|
|
|
class DbService {
|
|
getDatabasesList() {
|
|
return dbInstance.get("api/databases").json<DatabasesResponse>();
|
|
}
|
|
|
|
getTablesList({ dbName, sortDesc, sortField }: GetTablesListArgs) {
|
|
return dbInstance
|
|
.get(`api/databases/${dbName}/tables`, {
|
|
searchParams: getValuable({ sortField, sortDesc }),
|
|
})
|
|
.json<GetTablesListResponse>();
|
|
}
|
|
|
|
getTableData({
|
|
dbName,
|
|
tableName,
|
|
page,
|
|
perPage,
|
|
sortField,
|
|
sortDesc,
|
|
}: GetTableDataArgs) {
|
|
return dbInstance
|
|
.get(`api/databases/${dbName}/tables/${tableName}/data`, {
|
|
searchParams: getValuable({ perPage, page, sortField, sortDesc }),
|
|
})
|
|
.json<GetTableDataResponse>();
|
|
}
|
|
|
|
getTableColumns({ dbName, tableName }: GetTableColumnsArgs) {
|
|
return dbInstance
|
|
.get(`api/databases/${dbName}/tables/${tableName}/columns`)
|
|
.json<TableColumns>();
|
|
}
|
|
|
|
getTableIndexes({ dbName, tableName }: GetTableIndexesArgs) {
|
|
return dbInstance
|
|
.get(`api/databases/${dbName}/tables/${tableName}/indexes`)
|
|
.json<TableIndexes>();
|
|
}
|
|
|
|
getTableForeignKeys({ dbName, tableName }: GetTableForeignKeysArgs) {
|
|
return dbInstance
|
|
.get(`api/databases/${dbName}/tables/${tableName}/foreign-keys`)
|
|
.json<TableForeignKeys>();
|
|
}
|
|
|
|
queryRawSql({ query }: QueryRawSqlArgs) {
|
|
return dbInstance
|
|
.post("api/raw", {
|
|
json: { query },
|
|
})
|
|
.json<QueryRawSqlResponse>();
|
|
}
|
|
}
|
|
|
|
export const dbService = new DbService();
|