[core] PostgreSQL

This commit is contained in:
devlikepro committed 2025-01-19 14:42:56 +07:00
1 parent d2bb5bea63
commit 0c3bbc0980
6 files changed
+24 -9

No files matched your search

+1 -1
View File
@@ -1,6 +1,6 @@
# GOWS
ARG GOWS_GITHUB_REPO=devlikeapro/gows
ARG GOWS_SHA=95ca63a1dee5faec75232a9f59a548dfd4e414ff
ARG GOWS_SHA=98d1d6d9b665eff13956b1dfd06673a4cd797b41
ARG WAHA_DASHBOARD_GITHUB_REPO=devlikeapro/dashboard
ARG WAHA_DASHBOARD_SHA=a1c839d8da94d1cade182addffdfc42fc0cf7ed3
+7
View File
@@ -134,6 +134,13 @@ export class WhatsappConfigService {
return this.configService.get('WHATSAPP_SESSIONS_MONGO_URL', undefined);
}
getSessionPostgresUrl(): string | undefined {
return this.configService.get(
'WHATSAPP_SESSIONS_POSTGRESQL_URL',
undefined,
);
}
get(name: string, defaultValue: any = undefined): any {
return this.configService.get(name, defaultValue);
}
@@ -142,6 +142,7 @@ export class WhatsappSessionGoWSCore extends WhatsappSession {
this.logger.error('Failed to start the client');
this.logger.error(err, err.stack);
this.status = WAHASessionStatus.FAILED;
throw err;
}
}
+1
View File
@@ -24,6 +24,7 @@ export const NowebGroupsSchema = new Schema(
[new Field('id', 'TEXT'), new Field('data', 'TEXT')],
[new Index('groups_id_index', ['id'])],
);
export const NowebMessagesSchema = new Schema(
'messages',
[
+6 -4
View File
@@ -1,16 +1,18 @@
import { SessionConfig } from '../../structures/sessions.dto';
export abstract class ISessionConfigRepository {
abstract save(
abstract saveConfig(
sessionName: string,
config: SessionConfig | null,
): Promise<void>;
abstract get(sessionName: string): Promise<SessionConfig | null>;
abstract getConfig(sessionName: string): Promise<SessionConfig | null>;
abstract exists(sessionName: string): Promise<boolean>;
abstract delete(sessionName: string): Promise<void>;
abstract deleteConfig(sessionName: string): Promise<void>;
abstract getAll(): Promise<string[]>;
abstract getAllConfigs(): Promise<string[]>;
abstract init(): Promise<void>;
}
@@ -30,7 +30,7 @@ export class LocalSessionConfigRepository extends ISessionConfigRepository {
return true;
}
async get(sessionName: string): Promise<SessionConfig | null> {
async getConfig(sessionName: string): Promise<SessionConfig | null> {
const filepath = this.getFilePath(sessionName);
// Check file exists
if (!(await fileExists(filepath))) {
@@ -48,7 +48,7 @@ export class LocalSessionConfigRepository extends ISessionConfigRepository {
return JSON.parse(content);
}
async save(sessionName: string, config: SessionConfig | null) {
async saveConfig(sessionName: string, config: SessionConfig | null) {
// Create folder if not exist
const folder = this.store.getSessionDirectory(sessionName);
await fs.mkdir(folder, { recursive: true });
@@ -62,12 +62,12 @@ export class LocalSessionConfigRepository extends ISessionConfigRepository {
return this.store.getFilePath(sessionName, this.FILENAME);
}
async delete(sessionName: string): Promise<void> {
async deleteConfig(sessionName: string): Promise<void> {
const sessionDirectory = this.store.getSessionDirectory(sessionName);
await fs.remove(sessionDirectory);
}
async getAll(): Promise<string[]> {
async getAllConfigs(): Promise<string[]> {
await this.store.init();
const content = await fs.readdir(this.store.getEngineDirectory(), {
withFileTypes: true,
@@ -76,4 +76,8 @@ export class LocalSessionConfigRepository extends ISessionConfigRepository {
.filter((dirent) => dirent.isDirectory())
.map((dirent) => dirent.name);
}
async init() {
return;
}
}