Add endpoints to create and delete remote server (#4606)
* Build remote server * Add getters * Migrate to json inputs * Use extendable type * Use regex validation * Remove acronymes --------- Co-authored-by: Thomas Trompette <thomast@twenty.com>
This commit is contained in:
@ -0,0 +1,59 @@
|
||||
import { ObjectType } from '@nestjs/graphql';
|
||||
|
||||
import {
|
||||
Column,
|
||||
CreateDateColumn,
|
||||
Entity,
|
||||
Generated,
|
||||
PrimaryGeneratedColumn,
|
||||
UpdateDateColumn,
|
||||
} from 'typeorm';
|
||||
|
||||
export enum RemoteServerType {
|
||||
POSTGRES_FDW = 'postgres_fdw',
|
||||
}
|
||||
|
||||
type PostgresForeignDataWrapperOptions = {
|
||||
host: string;
|
||||
port: number;
|
||||
dbname: string;
|
||||
};
|
||||
|
||||
export type ForeignDataWrapperOptions<T extends RemoteServerType> =
|
||||
T extends RemoteServerType.POSTGRES_FDW
|
||||
? PostgresForeignDataWrapperOptions
|
||||
: never;
|
||||
|
||||
export type UserMappingOptions = {
|
||||
username: string;
|
||||
password: string;
|
||||
};
|
||||
|
||||
@Entity('remoteServer')
|
||||
@ObjectType('RemoteServer')
|
||||
export class RemoteServerEntity<T extends RemoteServerType> {
|
||||
@PrimaryGeneratedColumn('uuid')
|
||||
id: string;
|
||||
|
||||
@Column()
|
||||
@Generated('uuid')
|
||||
foreignDataWrapperId: string;
|
||||
|
||||
@Column({ nullable: true })
|
||||
foreignDataWrapperType: T;
|
||||
|
||||
@Column({ nullable: true, type: 'jsonb' })
|
||||
foreignDataWrapperOptions: ForeignDataWrapperOptions<T>;
|
||||
|
||||
@Column({ nullable: true, type: 'jsonb' })
|
||||
userMappingOptions: UserMappingOptions;
|
||||
|
||||
@Column({ nullable: false, type: 'uuid' })
|
||||
workspaceId: string;
|
||||
|
||||
@CreateDateColumn()
|
||||
createdAt: Date;
|
||||
|
||||
@UpdateDateColumn()
|
||||
updatedAt: Date;
|
||||
}
|
||||
Reference in New Issue
Block a user