From 1a74995fad456061a5c90bc2c43a89f899b86785 Mon Sep 17 00:00:00 2001 From: Zabilsya Date: Wed, 25 Dec 2024 16:47:47 +0600 Subject: [PATCH] [DOP-23004] refactor connection types and forms --- src/entities/connection/api/types.ts | 81 +++++++----------- src/entities/connection/index.ts | 1 - .../components/ConnectionAuthBasic/index.tsx | 20 +++++ .../components/ConnectionAuthS3/index.tsx | 20 +++++ .../components/ConnectionClickhouse/index.tsx | 17 ++-- .../components/ConnectionHdfs/index.tsx | 13 +-- .../components/ConnectionHive/index.tsx | 13 +-- .../components/ConnectionMsSql/index.tsx | 17 ++-- .../components/ConnectionMySql/index.tsx | 17 ++-- .../components/ConnectionOracle/index.tsx | 18 ++-- .../components/ConnectionPostgres/index.tsx | 17 ++-- .../components/ConnectionS3/index.tsx | 23 ++--- .../ui/ConnectionTypeForm/hooks/index.ts | 1 + .../hooks/useSelectConnectionType/index.ts | 34 ++++++++ .../hooks/useSelectConnectionType/types.ts | 5 ++ .../ui/ConnectionTypeForm/index.tsx | 10 +-- .../utils/adaptConnectionClickhouse/index.ts | 20 ----- .../utils/adaptConnectionClickhouse/types.ts | 4 - .../utils/adaptConnectionHdfs/index.ts | 18 ---- .../utils/adaptConnectionHdfs/types.ts | 3 - .../utils/adaptConnectionHive/index.ts | 18 ---- .../utils/adaptConnectionHive/types.ts | 3 - .../utils/adaptConnectionMsSql/index.ts | 20 ----- .../utils/adaptConnectionMsSql/types.ts | 3 - .../utils/adaptConnectionMySql/index.ts | 20 ----- .../utils/adaptConnectionMySql/types.ts | 3 - .../utils/adaptConnectionOracle/index.ts | 21 ----- .../utils/adaptConnectionOracle/types.ts | 3 - .../utils/adaptConnectionPostgres/index.ts | 20 ----- .../utils/adaptConnectionPostgres/types.ts | 3 - .../utils/adaptConnectionS3/index.ts | 23 ----- .../utils/adaptConnectionS3/types.ts | 3 - src/entities/connection/utils/index.ts | 8 -- .../connection/ConnectionDetailInfo/index.tsx | 6 +- .../utils/getConnectionAuthData/index.ts | 13 +-- .../utils/getConnectionAuthData/types.ts | 5 -- .../utils/getConnectionData/index.ts | 37 ++++---- .../utils/getConnectionData/types.ts | 5 -- .../connection/ConnectionList/constants.tsx | 2 +- .../connection/CreateConnection/index.tsx | 8 +- .../connection/CreateConnection/types.ts | 4 +- .../connection/UpdateConnection/index.tsx | 16 ++-- .../connection/UpdateConnection/types.ts | 6 +- .../getUpdateConnectionInitialValues/index.ts | 85 ------------------- .../UpdateConnection/utils/index.ts | 1 - .../utils/adaptConnectionTypeRequest/index.ts | 36 -------- .../utils/adaptConnectionTypeRequest/types.ts | 3 - src/features/connection/utils/index.ts | 1 - .../hooks/useSelectConnectionType/index.ts | 2 +- 49 files changed, 198 insertions(+), 532 deletions(-) create mode 100644 src/entities/connection/ui/ConnectionTypeForm/components/ConnectionAuthBasic/index.tsx create mode 100644 src/entities/connection/ui/ConnectionTypeForm/components/ConnectionAuthS3/index.tsx create mode 100644 src/entities/connection/ui/ConnectionTypeForm/hooks/useSelectConnectionType/index.ts create mode 100644 src/entities/connection/ui/ConnectionTypeForm/hooks/useSelectConnectionType/types.ts delete mode 100644 src/entities/connection/utils/adaptConnectionClickhouse/index.ts delete mode 100644 src/entities/connection/utils/adaptConnectionClickhouse/types.ts delete mode 100644 src/entities/connection/utils/adaptConnectionHdfs/index.ts delete mode 100644 src/entities/connection/utils/adaptConnectionHdfs/types.ts delete mode 100644 src/entities/connection/utils/adaptConnectionHive/index.ts delete mode 100644 src/entities/connection/utils/adaptConnectionHive/types.ts delete mode 100644 src/entities/connection/utils/adaptConnectionMsSql/index.ts delete mode 100644 src/entities/connection/utils/adaptConnectionMsSql/types.ts delete mode 100644 src/entities/connection/utils/adaptConnectionMySql/index.ts delete mode 100644 src/entities/connection/utils/adaptConnectionMySql/types.ts delete mode 100644 src/entities/connection/utils/adaptConnectionOracle/index.ts delete mode 100644 src/entities/connection/utils/adaptConnectionOracle/types.ts delete mode 100644 src/entities/connection/utils/adaptConnectionPostgres/index.ts delete mode 100644 src/entities/connection/utils/adaptConnectionPostgres/types.ts delete mode 100644 src/entities/connection/utils/adaptConnectionS3/index.ts delete mode 100644 src/entities/connection/utils/adaptConnectionS3/types.ts delete mode 100644 src/entities/connection/utils/index.ts delete mode 100644 src/features/connection/ConnectionDetailInfo/utils/getConnectionAuthData/types.ts delete mode 100644 src/features/connection/ConnectionDetailInfo/utils/getConnectionData/types.ts delete mode 100644 src/features/connection/UpdateConnection/utils/getUpdateConnectionInitialValues/index.ts delete mode 100644 src/features/connection/UpdateConnection/utils/index.ts delete mode 100644 src/features/connection/utils/adaptConnectionTypeRequest/index.ts delete mode 100644 src/features/connection/utils/adaptConnectionTypeRequest/types.ts delete mode 100644 src/features/connection/utils/index.ts diff --git a/src/entities/connection/api/types.ts b/src/entities/connection/api/types.ts index d6943f39..03095169 100644 --- a/src/entities/connection/api/types.ts +++ b/src/entities/connection/api/types.ts @@ -21,38 +21,43 @@ export type ConnectionBucketStyle = 'domain' | 'path'; export type ConnectionProtocol = 'https' | 'http'; +export enum ConnectionAuthType { + BASIC = 'basic', + S3 = 's3', +} + +interface ConnectionAuthBasic { + type: ConnectionAuthType.BASIC; + user: string; + password?: string; +} + +interface ConnectionAuthS3 { + type: ConnectionAuthType.S3; + access_key: string; + secret_key?: string; +} + export interface ConnectionHive { - auth_data: { - type: ConnectionType.HIVE; - user: string; - password?: string; - }; + type: ConnectionType.HIVE; + auth_data: ConnectionAuthBasic; connection_data: { - type: ConnectionType.HIVE; cluster: string; }; } export interface ConnectionHdfs { - auth_data: { - type: ConnectionType.HDFS; - user: string; - password?: string; - }; + type: ConnectionType.HDFS; + auth_data: ConnectionAuthBasic; connection_data: { - type: ConnectionType.HDFS; cluster: string; }; } export interface ConnectionOracle { - auth_data: { - type: ConnectionType.ORACLE; - user: string; - password?: string; - }; + type: ConnectionType.ORACLE; + auth_data: ConnectionAuthBasic; connection_data: { - type: ConnectionType.ORACLE; host: string; port: number; service_name: string | null; @@ -61,13 +66,9 @@ export interface ConnectionOracle { } export interface ConnectionPostgres { - auth_data: { - type: ConnectionType.POSTGRES; - user: string; - password?: string; - }; + type: ConnectionType.POSTGRES; + auth_data: ConnectionAuthBasic; connection_data: { - type: ConnectionType.POSTGRES; host: string; port: number; database_name: string; @@ -75,13 +76,9 @@ export interface ConnectionPostgres { } export interface ConnectionClickhouse { - auth_data: { - type: ConnectionType.CLICKHOUSE; - user: string; - password?: string; - }; + type: ConnectionType.CLICKHOUSE; + auth_data: ConnectionAuthBasic; connection_data: { - type: ConnectionType.CLICKHOUSE; host: string; port: number; database_name: string; @@ -89,13 +86,9 @@ export interface ConnectionClickhouse { } export interface ConnectionMySql { - auth_data: { - type: ConnectionType.MY_SQL; - user: string; - password?: string; - }; + type: ConnectionType.MY_SQL; + auth_data: ConnectionAuthBasic; connection_data: { - type: ConnectionType.MY_SQL; host: string; port: number; database_name: string; @@ -103,13 +96,9 @@ export interface ConnectionMySql { } export interface ConnectionMsSql { - auth_data: { - type: ConnectionType.MS_SQL; - user: string; - password?: string; - }; + type: ConnectionType.MS_SQL; + auth_data: ConnectionAuthBasic; connection_data: { - type: ConnectionType.MS_SQL; host: string; port: number; database_name: string; @@ -117,13 +106,9 @@ export interface ConnectionMsSql { } export interface ConnectionS3 { - auth_data: { - type: ConnectionType.S3; - access_key: string; - secret_key?: string; - }; + type: ConnectionType.S3; + auth_data: ConnectionAuthS3; connection_data: { - type: ConnectionType.S3; host: string; bucket: string; bucket_style: ConnectionBucketStyle; diff --git a/src/entities/connection/index.ts b/src/entities/connection/index.ts index 6b9a58e4..93c999ea 100644 --- a/src/entities/connection/index.ts +++ b/src/entities/connection/index.ts @@ -1,4 +1,3 @@ export * from './api'; export * from './constants'; export * from './ui'; -export * from './utils'; diff --git a/src/entities/connection/ui/ConnectionTypeForm/components/ConnectionAuthBasic/index.tsx b/src/entities/connection/ui/ConnectionTypeForm/components/ConnectionAuthBasic/index.tsx new file mode 100644 index 00000000..d9960b5e --- /dev/null +++ b/src/entities/connection/ui/ConnectionTypeForm/components/ConnectionAuthBasic/index.tsx @@ -0,0 +1,20 @@ +import React from 'react'; +import { Form, Input } from 'antd'; + +import { useSensitiveFields } from '../../hooks'; + +export const ConnectionAuthBasic = () => { + const { isRequired } = useSensitiveFields(); + + return ( + <> +