Refactoring 3
This commit is contained in:
parent
e4b78ceec2
commit
d1fb9b4d06
20 changed files with 201 additions and 123 deletions
|
|
@ -7,8 +7,9 @@ import type {
|
|||
Insertable,
|
||||
Updateable,
|
||||
} from "kysely";
|
||||
import { Pool, types } from "pg";
|
||||
import pg from "pg";
|
||||
import { KyselyAuth } from "@auth/kysely-adapter";
|
||||
const { Pool, types } = pg;
|
||||
|
||||
type Timestamp = ColumnType<Date, Date | string>;
|
||||
|
||||
|
|
|
|||
|
|
@ -6,8 +6,7 @@
|
|||
"author": "Darren Clarke <darren@redaranj.com>",
|
||||
"license": "AGPL-3.0-or-later",
|
||||
"scripts": {
|
||||
"build": "tsc -p tsconfig.json",
|
||||
"dev": "NODE_OPTIONS=\"--loader ts-node/esm\" graphile-worker"
|
||||
"build": "tsc -p tsconfig.json"
|
||||
},
|
||||
"dependencies": {
|
||||
"@auth/kysely-adapter": "^1.0.0",
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"compilerOptions": {
|
||||
"target": "es5",
|
||||
"lib": ["dom", "dom.iterable", "esnext"],
|
||||
"target": "esnext",
|
||||
"lib": ["esnext"],
|
||||
"allowJs": true,
|
||||
"skipLibCheck": true,
|
||||
"strict": true,
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -25,7 +25,7 @@ export class Facebook extends Service {
|
|||
|
||||
const message = await req.json();
|
||||
const worker = await getWorkerUtils();
|
||||
await worker.addJob("receive_facebook_message", message);
|
||||
await worker.addJob("facebook/receive-facebook-message", { message });
|
||||
|
||||
return NextResponse.json({ response: "ok" });
|
||||
}
|
||||
|
|
|
|||
|
|
@ -48,12 +48,16 @@ export type ServiceConfig = {
|
|||
};
|
||||
|
||||
export type ServiceParams = {
|
||||
service: string;
|
||||
token?: string;
|
||||
params: {
|
||||
service: string;
|
||||
token?: string;
|
||||
};
|
||||
};
|
||||
|
||||
export class Service {
|
||||
async getBot({ service, token }: ServiceParams): Promise<NextResponse> {
|
||||
async getBot({
|
||||
params: { service, token },
|
||||
}: ServiceParams): Promise<NextResponse> {
|
||||
const table = getServiceTable(service);
|
||||
const row = await db
|
||||
.selectFrom(table)
|
||||
|
|
@ -66,11 +70,14 @@ export class Service {
|
|||
|
||||
async sendMessage(
|
||||
req: NextRequest,
|
||||
{ service, token }: ServiceParams,
|
||||
{ params: { service, token } }: ServiceParams,
|
||||
): Promise<NextResponse> {
|
||||
const message = await req.json();
|
||||
const worker = await getWorkerUtils();
|
||||
await worker.addJob(`send_${service}_message`, { token, message });
|
||||
await worker.addJob(`${service}/send-${service}-message`, {
|
||||
token,
|
||||
message,
|
||||
});
|
||||
|
||||
return NextResponse.json({ response: "ok" });
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ import { Facebook } from "./facebook";
|
|||
import { Signal } from "./signal";
|
||||
import { Whatsapp } from "./whatsapp";
|
||||
|
||||
export const getService = ({ service }: ServiceParams): Service => {
|
||||
export const getService = ({ params: { service } }: ServiceParams): Service => {
|
||||
if (service === "facebook") {
|
||||
return new Facebook();
|
||||
} else if (service === "signal") {
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
Loading…
Add table
Add a link
Reference in a new issue