diff --git a/package-lock.json b/package-lock.json index c2f7466..a290763 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "groundcontrol", - "version": "2.3.2", + "version": "2.3.3", "lockfileVersion": 2, "requires": true, "packages": { diff --git a/package.json b/package.json index 9a608e3..d832ace 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "groundcontrol", - "version": "2.3.2", + "version": "2.3.3", "description": "GroundControl push server API", "devDependencies": { "@types/node": "18.7.16", diff --git a/src/controller/GroundController.ts b/src/controller/GroundController.ts index d2fe7fa..543c50b 100644 --- a/src/controller/GroundController.ts +++ b/src/controller/GroundController.ts @@ -104,6 +104,19 @@ const pushLogPurge = () => { .catch((error) => console.log("error purging PushLog:", error)); }; +const purgeOldTxidSubscriptions = () => { + console.log("purging TokenToTxid..."); + let today = new Date(); + connection + .createQueryBuilder() + .delete() + .from(TokenToTxid) + .where("created <= :currentDate", { currentDate: new Date(today.getTime() - 3 * 30 * 24 * 60 * 60 * 1000) }) // 3 mo + .execute() + .then(() => console.log("TokenToTxid purged ok")) + .catch((error) => console.log("error purging TokenToTxid:", error)); +}; + const purgeIgnoredAddressesSubscriptions = () => { console.log("Purging addresses subscriptions..."); connection @@ -121,6 +134,7 @@ dataSource.initialize().then((c) => { connection = c; purgeIgnoredAddressesSubscriptions(); pushLogPurge(); + purgeOldTxidSubscriptions(); setInterval(pushLogPurge, 3600 * 1000); }); diff --git a/src/entity/TokenToTxid.ts b/src/entity/TokenToTxid.ts index 2ec855e..cf8a14f 100644 --- a/src/entity/TokenToTxid.ts +++ b/src/entity/TokenToTxid.ts @@ -2,6 +2,8 @@ import { Entity, PrimaryGeneratedColumn, Column, Index } from "typeorm"; @Entity() @Index(["token", "txid"], { unique: true }) +@Index(["txid"], { unique: false }) +@Index(["created"], { unique: false }) export class TokenToTxid { @PrimaryGeneratedColumn() id: number;