mirror of
https://github.com/stonith404/pingvin-share.git
synced 2024-10-02 01:20:11 +02:00
refactor(jobs): clear expired tokens and reverse shares
This commit is contained in:
parent
86a7379519
commit
e3f88d0826
@ -1,9 +1,10 @@
|
|||||||
import { Module } from "@nestjs/common";
|
import { Module } from "@nestjs/common";
|
||||||
import { FileModule } from "src/file/file.module";
|
import { FileModule } from "src/file/file.module";
|
||||||
|
import { ReverseShareModule } from "src/reverseShare/reverseShare.module";
|
||||||
import { JobsService } from "./jobs.service";
|
import { JobsService } from "./jobs.service";
|
||||||
|
|
||||||
@Module({
|
@Module({
|
||||||
imports: [FileModule],
|
imports: [FileModule, ReverseShareModule],
|
||||||
providers: [JobsService],
|
providers: [JobsService],
|
||||||
})
|
})
|
||||||
export class JobsModule {}
|
export class JobsModule {}
|
||||||
|
@ -4,11 +4,13 @@ import * as fs from "fs";
|
|||||||
import * as moment from "moment";
|
import * as moment from "moment";
|
||||||
import { FileService } from "src/file/file.service";
|
import { FileService } from "src/file/file.service";
|
||||||
import { PrismaService } from "src/prisma/prisma.service";
|
import { PrismaService } from "src/prisma/prisma.service";
|
||||||
|
import { ReverseShareService } from "src/reverseShare/reverseShare.service";
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class JobsService {
|
export class JobsService {
|
||||||
constructor(
|
constructor(
|
||||||
private prisma: PrismaService,
|
private prisma: PrismaService,
|
||||||
|
private reverseShareService: ReverseShareService,
|
||||||
private fileService: FileService
|
private fileService: FileService
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
@ -36,6 +38,24 @@ export class JobsService {
|
|||||||
console.log(`job: deleted ${expiredShares.length} expired shares`);
|
console.log(`job: deleted ${expiredShares.length} expired shares`);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Cron("0 * * * *")
|
||||||
|
async deleteExpiredReverseShares() {
|
||||||
|
const expiredReverseShares = await this.prisma.reverseShare.findMany({
|
||||||
|
where: {
|
||||||
|
shareExpiration: { lt: new Date() },
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
for (const expiredReverseShare of expiredReverseShares) {
|
||||||
|
await this.reverseShareService.remove(expiredReverseShare.id);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (expiredReverseShares.length > 0)
|
||||||
|
console.log(
|
||||||
|
`job: deleted ${expiredReverseShares.length} expired reverse shares`
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
@Cron("0 0 * * *")
|
@Cron("0 0 * * *")
|
||||||
deleteTemporaryFiles() {
|
deleteTemporaryFiles() {
|
||||||
let filesDeleted = 0;
|
let filesDeleted = 0;
|
||||||
@ -69,14 +89,25 @@ export class JobsService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Cron("0 * * * *")
|
@Cron("0 * * * *")
|
||||||
async deleteExpiredRefreshTokens() {
|
async deleteExpiredTokens() {
|
||||||
const expiredRefreshTokens = await this.prisma.refreshToken.deleteMany({
|
const { count: refreshTokenCount } =
|
||||||
|
await this.prisma.refreshToken.deleteMany({
|
||||||
where: { expiresAt: { lt: new Date() } },
|
where: { expiresAt: { lt: new Date() } },
|
||||||
});
|
});
|
||||||
|
|
||||||
if (expiredRefreshTokens.count > 0)
|
const { count: loginTokenCount } = await this.prisma.loginToken.deleteMany({
|
||||||
console.log(
|
where: { expiresAt: { lt: new Date() } },
|
||||||
`job: deleted ${expiredRefreshTokens.count} expired refresh tokens`
|
});
|
||||||
);
|
|
||||||
|
const { count: resetPasswordTokenCount } =
|
||||||
|
await this.prisma.resetPasswordToken.deleteMany({
|
||||||
|
where: { expiresAt: { lt: new Date() } },
|
||||||
|
});
|
||||||
|
|
||||||
|
const deletedTokensCount =
|
||||||
|
refreshTokenCount + loginTokenCount + resetPasswordTokenCount;
|
||||||
|
|
||||||
|
if (deletedTokensCount > 0)
|
||||||
|
console.log(`job: deleted ${deletedTokensCount} expired refresh tokens`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user