2023-03-13 11:28:50 +00:00
|
|
|
import {
|
|
|
|
|
RepositoryBase,
|
|
|
|
|
recordInfo,
|
|
|
|
|
UUID,
|
|
|
|
|
Flavor,
|
|
|
|
|
} from "@digiresilience/metamigo-common";
|
2023-02-13 12:41:30 +00:00
|
|
|
|
|
|
|
|
export type WhatsappBotId = Flavor<UUID, "Whatsapp Bot Id">;
|
|
|
|
|
|
|
|
|
|
export interface UnsavedWhatsappBot {
|
|
|
|
|
phoneNumber: string;
|
|
|
|
|
userId: string;
|
|
|
|
|
description: string;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export interface SavedWhatsappBot extends UnsavedWhatsappBot {
|
|
|
|
|
id: WhatsappBotId;
|
|
|
|
|
createdAt: Date;
|
|
|
|
|
updatedAt: Date;
|
|
|
|
|
token: string;
|
|
|
|
|
authInfo: string;
|
|
|
|
|
qrCode: string;
|
|
|
|
|
isVerified: boolean;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export const WhatsappBotRecord = recordInfo<
|
|
|
|
|
UnsavedWhatsappBot,
|
|
|
|
|
SavedWhatsappBot
|
|
|
|
|
>("app_public", "whatsapp_bots");
|
|
|
|
|
|
|
|
|
|
export class WhatsappBotRecordRepository extends RepositoryBase(
|
|
|
|
|
WhatsappBotRecord
|
|
|
|
|
) {
|
|
|
|
|
async updateQR(
|
|
|
|
|
bot: SavedWhatsappBot,
|
|
|
|
|
qrCode: string | undefined
|
|
|
|
|
): Promise<SavedWhatsappBot> {
|
|
|
|
|
return this.db.one(
|
|
|
|
|
"UPDATE $1 SET (qr_code) = ROW($2) WHERE id = $3 RETURNING *",
|
|
|
|
|
[this.schemaTable, qrCode, bot.id]
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
2023-03-13 16:09:41 +00:00
|
|
|
async updateVerified(
|
2023-02-13 12:41:30 +00:00
|
|
|
bot: SavedWhatsappBot,
|
2023-03-13 16:09:41 +00:00
|
|
|
verified: boolean
|
2023-02-13 12:41:30 +00:00
|
|
|
): Promise<SavedWhatsappBot> {
|
|
|
|
|
return this.db.one(
|
2023-03-13 16:09:41 +00:00
|
|
|
"UPDATE $1 SET (is_verified) = ROW($2) WHERE id = $3 RETURNING *",
|
|
|
|
|
[this.schemaTable, verified, bot.id]
|
2023-02-13 12:41:30 +00:00
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
}
|