Build stripe integration on backend side (#5246)
Adding stripe integration by making the server logic independent of the input fields: - query factories (remote server, foreign data wrapper, foreign table) to loop on fields and values without hardcoding the names of the fields - adding stripe input and type - add the logic to handle static schema. Simply creating a big object to store into the server Additional work: - rename username field to user. This is the input intended for postgres user mapping and we now need a matching by name --------- Co-authored-by: Thomas Trompette <thomast@twenty.com>
This commit is contained in:
@ -10,11 +10,12 @@ import {
|
||||
} from 'typeorm';
|
||||
|
||||
import { RemoteTableEntity } from 'src/engine/metadata-modules/remote-server/remote-table/remote-table.entity';
|
||||
import { UserMappingOptions } from 'src/engine/metadata-modules/remote-server/utils/user-mapping-options.utils';
|
||||
import { UserMappingOptions } from 'src/engine/metadata-modules/remote-server/types/user-mapping-options';
|
||||
import { DistantTables } from 'src/engine/metadata-modules/remote-server/remote-table/distant-table/types/distant-table';
|
||||
|
||||
export enum RemoteServerType {
|
||||
POSTGRES_FDW = 'postgres_fdw',
|
||||
STRIPE_FDW = 'stripe_fdw',
|
||||
}
|
||||
|
||||
type PostgresForeignDataWrapperOptions = {
|
||||
@ -23,10 +24,17 @@ type PostgresForeignDataWrapperOptions = {
|
||||
dbname: string;
|
||||
};
|
||||
|
||||
type StripeForeignDataWrapperOptions = {
|
||||
api_key: string;
|
||||
};
|
||||
|
||||
export type ForeignDataWrapperOptions<T extends RemoteServerType> =
|
||||
T extends RemoteServerType.POSTGRES_FDW
|
||||
? PostgresForeignDataWrapperOptions
|
||||
: never;
|
||||
: T extends RemoteServerType.STRIPE_FDW
|
||||
? StripeForeignDataWrapperOptions
|
||||
: never;
|
||||
|
||||
@Entity('remoteServer')
|
||||
export class RemoteServerEntity<T extends RemoteServerType> {
|
||||
@PrimaryGeneratedColumn('uuid')
|
||||
|
||||
Reference in New Issue
Block a user