Finish bridge generalization
This commit is contained in:
parent
cb7a3a08dc
commit
cca8d03988
93 changed files with 634 additions and 2085 deletions
|
|
@ -1,6 +1,16 @@
|
|||
import type { ServiceConfig } from "./service";
|
||||
import { facebookConfig as facebook } from "./facebook";
|
||||
import { signalConfig as signal } from "./signal";
|
||||
import { whatsappConfig as whatsapp } from "./whatsapp";
|
||||
import { voiceConfig as voice } from "./voice";
|
||||
import { webhooksConfig as webhooks } from "./webhooks";
|
||||
import { usersConfig as users } from "./users";
|
||||
|
||||
export const serviceConfig: Record<string, ServiceConfig> = {
|
||||
facebook,
|
||||
signal,
|
||||
whatsapp,
|
||||
voice,
|
||||
webhooks,
|
||||
users,
|
||||
};
|
||||
|
|
|
|||
|
|
@ -4,57 +4,64 @@ import { Service, ServiceConfig } from "./service";
|
|||
export const facebookConfig: ServiceConfig = {
|
||||
entity: "facebook",
|
||||
table: "FacebookBot",
|
||||
displayName: "Facebook Connections",
|
||||
displayName: "Facebook Connection",
|
||||
createFields: [
|
||||
{ name: "name", type: "text", label: "Name", required: true },
|
||||
{
|
||||
name: "name",
|
||||
label: "Name",
|
||||
required: true,
|
||||
size: 12,
|
||||
},
|
||||
{
|
||||
name: "description",
|
||||
type: "text",
|
||||
label: "Description",
|
||||
required: true,
|
||||
size: 12,
|
||||
lines: 3,
|
||||
},
|
||||
{ name: "appId", type: "text", label: "App ID", required: true },
|
||||
{ name: "appSecret", type: "text", label: "App Secret", required: true },
|
||||
{ name: "pageId", type: "text", label: "Page ID", required: true },
|
||||
{ name: "appId", label: "App ID", required: true },
|
||||
{ name: "appSecret", label: "App Secret", required: true },
|
||||
{ name: "pageId", label: "Page ID", required: true },
|
||||
{
|
||||
name: "pageAccessToken",
|
||||
type: "text",
|
||||
label: "Page Access Token",
|
||||
required: true,
|
||||
},
|
||||
],
|
||||
updateFields: [
|
||||
{ name: "name", type: "text", label: "Name", required: true },
|
||||
{ name: "name", label: "Name", required: true, size: 12 },
|
||||
{
|
||||
name: "description",
|
||||
type: "text",
|
||||
label: "Description",
|
||||
required: true,
|
||||
size: 12,
|
||||
lines: 3,
|
||||
},
|
||||
{ name: "appId", type: "text", label: "App ID", required: true },
|
||||
{ name: "appSecret", type: "text", label: "App Secret", required: true },
|
||||
{ name: "pageId", type: "text", label: "Page ID", required: true },
|
||||
{ name: "appId", label: "App ID", required: true },
|
||||
{ name: "appSecret", label: "App Secret", required: true },
|
||||
{ name: "pageId", label: "Page ID", required: true },
|
||||
{
|
||||
name: "pageAccessToken",
|
||||
type: "text",
|
||||
label: "Page Access Token",
|
||||
required: true,
|
||||
},
|
||||
],
|
||||
displayFields: [
|
||||
{ name: "name", type: "text", label: "Name", required: true },
|
||||
{ name: "name", label: "Name", required: true, size: 12 },
|
||||
{
|
||||
name: "description",
|
||||
type: "text",
|
||||
label: "Description",
|
||||
required: true,
|
||||
size: 12,
|
||||
},
|
||||
{ name: "appId", label: "App ID", required: true },
|
||||
{ name: "appSecret", label: "App Secret", required: true },
|
||||
{
|
||||
name: "pageId",
|
||||
label: "Page ID",
|
||||
required: true,
|
||||
copyable: true,
|
||||
},
|
||||
{ name: "appId", type: "text", label: "App ID", required: true },
|
||||
{ name: "appSecret", type: "text", label: "App Secret", required: true },
|
||||
{ name: "pageId", type: "text", label: "Page ID", required: true },
|
||||
{
|
||||
name: "pageAccessToken",
|
||||
type: "text",
|
||||
label: "Page Access Token",
|
||||
required: true,
|
||||
},
|
||||
|
|
|
|||
|
|
@ -7,16 +7,16 @@ const entities = [
|
|||
"whatsapp",
|
||||
"signal",
|
||||
"voice",
|
||||
"webhook",
|
||||
"user",
|
||||
"webhooks",
|
||||
"users",
|
||||
] as const;
|
||||
|
||||
export type Entity = (typeof entities)[number];
|
||||
|
||||
export type FieldDescription = {
|
||||
name: string;
|
||||
type: string;
|
||||
label: string;
|
||||
type?: string;
|
||||
lines?: number;
|
||||
copyable?: boolean;
|
||||
defaultValue?: string;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,81 @@
|
|||
import { NextRequest, NextResponse } from "next/server";
|
||||
import { Service } from "./service";
|
||||
import { Service, ServiceConfig } from "./service";
|
||||
|
||||
export const signalConfig: ServiceConfig = {
|
||||
entity: "signal",
|
||||
table: "SignalBot",
|
||||
displayName: "Signal Connection",
|
||||
createFields: [
|
||||
{
|
||||
name: "name",
|
||||
label: "Name",
|
||||
required: true,
|
||||
size: 12,
|
||||
},
|
||||
{
|
||||
name: "description",
|
||||
label: "Description",
|
||||
size: 12,
|
||||
lines: 3,
|
||||
},
|
||||
{
|
||||
name: "phoneNumber",
|
||||
label: "phoneNumber",
|
||||
required: true,
|
||||
},
|
||||
],
|
||||
updateFields: [
|
||||
{ name: "name", label: "Name", required: true, size: 12 },
|
||||
{
|
||||
name: "description",
|
||||
label: "Description",
|
||||
required: true,
|
||||
size: 12,
|
||||
},
|
||||
{
|
||||
name: "phoneNumber",
|
||||
label: "phoneNumber",
|
||||
required: true,
|
||||
},
|
||||
],
|
||||
displayFields: [
|
||||
{ name: "name", label: "Name", required: true, size: 12 },
|
||||
{
|
||||
name: "description",
|
||||
label: "Description",
|
||||
required: true,
|
||||
size: 12,
|
||||
},
|
||||
{
|
||||
name: "phoneNumber",
|
||||
label: "phoneNumber",
|
||||
required: true,
|
||||
},
|
||||
],
|
||||
listColumns: [
|
||||
{
|
||||
field: "name",
|
||||
headerName: "Name",
|
||||
flex: 1,
|
||||
},
|
||||
{
|
||||
field: "phoneNumber",
|
||||
headerName: "Phone Number",
|
||||
flex: 1,
|
||||
},
|
||||
{
|
||||
field: "description",
|
||||
headerName: "Description",
|
||||
flex: 2,
|
||||
},
|
||||
{
|
||||
field: "updatedAt",
|
||||
headerName: "Updated At",
|
||||
valueGetter: (value: any) => new Date(value).toLocaleString(),
|
||||
flex: 1,
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
const getAllBots = async (req: NextRequest) => {
|
||||
console.log({ req });
|
||||
|
|
|
|||
56
apps/bridge-frontend/app/_lib/users.ts
Normal file
56
apps/bridge-frontend/app/_lib/users.ts
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
import { ServiceConfig } from "./service";
|
||||
|
||||
export const usersConfig: ServiceConfig = {
|
||||
entity: "users",
|
||||
table: "User",
|
||||
displayName: "User",
|
||||
createFields: [
|
||||
{
|
||||
name: "name",
|
||||
label: "Name",
|
||||
required: true,
|
||||
size: 12,
|
||||
},
|
||||
{
|
||||
name: "email",
|
||||
label: "Email",
|
||||
required: true,
|
||||
size: 12,
|
||||
},
|
||||
],
|
||||
updateFields: [
|
||||
{ name: "name", label: "Name", required: true, size: 12 },
|
||||
{
|
||||
name: "email",
|
||||
label: "Email",
|
||||
required: true,
|
||||
size: 12,
|
||||
},
|
||||
],
|
||||
displayFields: [
|
||||
{ name: "name", label: "Name", required: true, size: 12 },
|
||||
{
|
||||
name: "email",
|
||||
label: "Email",
|
||||
size: 12,
|
||||
},
|
||||
],
|
||||
listColumns: [
|
||||
{
|
||||
field: "name",
|
||||
headerName: "Name",
|
||||
flex: 1,
|
||||
},
|
||||
{
|
||||
field: "email",
|
||||
headerName: "Email",
|
||||
flex: 2,
|
||||
},
|
||||
{
|
||||
field: "updatedAt",
|
||||
headerName: "Updated At",
|
||||
valueGetter: (value: any) => new Date(value).toLocaleString(),
|
||||
flex: 1,
|
||||
},
|
||||
],
|
||||
};
|
||||
|
|
@ -1,5 +1,81 @@
|
|||
import { NextRequest, NextResponse } from "next/server";
|
||||
import { Service } from "./service";
|
||||
import { Service, ServiceConfig } from "./service";
|
||||
|
||||
export const voiceConfig: ServiceConfig = {
|
||||
entity: "voice",
|
||||
table: "VoiceLine",
|
||||
displayName: "Voice Line",
|
||||
createFields: [
|
||||
{
|
||||
name: "name",
|
||||
label: "Name",
|
||||
required: true,
|
||||
size: 12,
|
||||
},
|
||||
{
|
||||
name: "description",
|
||||
label: "Description",
|
||||
size: 12,
|
||||
lines: 3,
|
||||
},
|
||||
{
|
||||
name: "phoneNumber",
|
||||
label: "phoneNumber",
|
||||
required: true,
|
||||
},
|
||||
],
|
||||
updateFields: [
|
||||
{ name: "name", label: "Name", required: true, size: 12 },
|
||||
{
|
||||
name: "description",
|
||||
label: "Description",
|
||||
required: true,
|
||||
size: 12,
|
||||
},
|
||||
{
|
||||
name: "phoneNumber",
|
||||
label: "Phone Number",
|
||||
required: true,
|
||||
},
|
||||
],
|
||||
displayFields: [
|
||||
{ name: "name", label: "Name", required: true, size: 12 },
|
||||
{
|
||||
name: "description",
|
||||
label: "Description",
|
||||
required: true,
|
||||
size: 12,
|
||||
},
|
||||
{
|
||||
name: "phoneNumber",
|
||||
label: "Phone Number",
|
||||
required: true,
|
||||
},
|
||||
],
|
||||
listColumns: [
|
||||
{
|
||||
field: "name",
|
||||
headerName: "Name",
|
||||
flex: 1,
|
||||
},
|
||||
{
|
||||
field: "phoneNumber",
|
||||
headerName: "Phone Number",
|
||||
flex: 1,
|
||||
},
|
||||
{
|
||||
field: "description",
|
||||
headerName: "Description",
|
||||
flex: 2,
|
||||
},
|
||||
{
|
||||
field: "updatedAt",
|
||||
headerName: "Updated At",
|
||||
valueGetter: (value: any) => new Date(value).toLocaleString(),
|
||||
flex: 1,
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
const getAllBots = async (req: NextRequest) => {
|
||||
console.log({ req });
|
||||
|
|
|
|||
57
apps/bridge-frontend/app/_lib/webhooks.ts
Normal file
57
apps/bridge-frontend/app/_lib/webhooks.ts
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
import { ServiceConfig } from "./service";
|
||||
|
||||
export const webhooksConfig: ServiceConfig = {
|
||||
entity: "webhooks",
|
||||
table: "Webhook",
|
||||
displayName: "Webhook",
|
||||
createFields: [
|
||||
{
|
||||
name: "name",
|
||||
label: "Name",
|
||||
required: true,
|
||||
size: 12,
|
||||
},
|
||||
{
|
||||
name: "description",
|
||||
label: "Description",
|
||||
size: 12,
|
||||
lines: 3,
|
||||
},
|
||||
],
|
||||
updateFields: [
|
||||
{ name: "name", label: "Name", required: true, size: 12 },
|
||||
{
|
||||
name: "description",
|
||||
label: "Description",
|
||||
required: true,
|
||||
size: 12,
|
||||
},
|
||||
],
|
||||
displayFields: [
|
||||
{ name: "name", label: "Name", required: true, size: 12 },
|
||||
{
|
||||
name: "description",
|
||||
label: "Description",
|
||||
required: true,
|
||||
size: 12,
|
||||
},
|
||||
],
|
||||
listColumns: [
|
||||
{
|
||||
field: "name",
|
||||
headerName: "Name",
|
||||
flex: 1,
|
||||
},
|
||||
{
|
||||
field: "description",
|
||||
headerName: "Description",
|
||||
flex: 2,
|
||||
},
|
||||
{
|
||||
field: "updatedAt",
|
||||
headerName: "Updated At",
|
||||
valueGetter: (value: any) => new Date(value).toLocaleString(),
|
||||
flex: 1,
|
||||
},
|
||||
],
|
||||
};
|
||||
|
|
@ -1,5 +1,81 @@
|
|||
import { NextRequest, NextResponse } from "next/server";
|
||||
import { Service } from "./service";
|
||||
import { Service, ServiceConfig } from "./service";
|
||||
|
||||
export const whatsappConfig: ServiceConfig = {
|
||||
entity: "whatsapp",
|
||||
table: "WhatsappBot",
|
||||
displayName: "WhatsApp Connection",
|
||||
createFields: [
|
||||
{
|
||||
name: "name",
|
||||
label: "Name",
|
||||
required: true,
|
||||
size: 12,
|
||||
},
|
||||
{
|
||||
name: "description",
|
||||
label: "Description",
|
||||
size: 12,
|
||||
lines: 3,
|
||||
},
|
||||
{
|
||||
name: "phoneNumber",
|
||||
label: "Phone Number",
|
||||
required: true,
|
||||
},
|
||||
],
|
||||
updateFields: [
|
||||
{ name: "name", label: "Name", required: true, size: 12 },
|
||||
{
|
||||
name: "description",
|
||||
label: "Description",
|
||||
required: true,
|
||||
size: 12,
|
||||
},
|
||||
{
|
||||
name: "phoneNumber",
|
||||
label: "Phone Number",
|
||||
required: true,
|
||||
},
|
||||
],
|
||||
displayFields: [
|
||||
{ name: "name", label: "Name", required: true, size: 12 },
|
||||
{
|
||||
name: "description",
|
||||
label: "Description",
|
||||
required: true,
|
||||
size: 12,
|
||||
},
|
||||
{
|
||||
name: "phoneNumber",
|
||||
label: "Phone Number",
|
||||
required: true,
|
||||
},
|
||||
],
|
||||
listColumns: [
|
||||
{
|
||||
field: "name",
|
||||
headerName: "Name",
|
||||
flex: 1,
|
||||
},
|
||||
{
|
||||
field: "phoneNumber",
|
||||
headerName: "Phone Number",
|
||||
flex: 1,
|
||||
},
|
||||
{
|
||||
field: "description",
|
||||
headerName: "Description",
|
||||
flex: 2,
|
||||
},
|
||||
{
|
||||
field: "updatedAt",
|
||||
headerName: "Updated At",
|
||||
valueGetter: (value: any) => new Date(value).toLocaleString(),
|
||||
flex: 1,
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
const getAllBots = async (req: NextRequest) => {
|
||||
console.log({ req });
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue