diff options
| author | syuilo <Syuilotan@yahoo.co.jp> | 2023-03-01 10:20:03 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-03-01 10:20:03 +0900 |
| commit | 1c5291f8185651c231903129ee7c1cee263f9f03 (patch) | |
| tree | 36668447b343dc4c50222390761fd73d143278e9 /packages/backend/src/queue/processors/CleanProcessorService.ts | |
| parent | enhance(client): ノートの操作部をホバー時のみ表示するオプ... (diff) | |
| download | sharkey-1c5291f8185651c231903129ee7c1cee263f9f03.tar.gz sharkey-1c5291f8185651c231903129ee7c1cee263f9f03.tar.bz2 sharkey-1c5291f8185651c231903129ee7c1cee263f9f03.zip | |
feat: 時限ロール (#10145)
* feat: 時限ロール
* クライアントから期限を確認できるように
* リファクタとか
* fix test
* fix test
* fix test
* clean up
Diffstat (limited to 'packages/backend/src/queue/processors/CleanProcessorService.ts')
| -rw-r--r-- | packages/backend/src/queue/processors/CleanProcessorService.ts | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/packages/backend/src/queue/processors/CleanProcessorService.ts b/packages/backend/src/queue/processors/CleanProcessorService.ts index 406184cbde..7fd2cde9c0 100644 --- a/packages/backend/src/queue/processors/CleanProcessorService.ts +++ b/packages/backend/src/queue/processors/CleanProcessorService.ts @@ -1,7 +1,7 @@ import { Inject, Injectable } from '@nestjs/common'; -import { LessThan } from 'typeorm'; +import { In, LessThan } from 'typeorm'; import { DI } from '@/di-symbols.js'; -import type { AntennaNotesRepository, MutedNotesRepository, NotificationsRepository, UserIpsRepository } from '@/models/index.js'; +import type { AntennaNotesRepository, MutedNotesRepository, NotificationsRepository, RoleAssignmentsRepository, UserIpsRepository } from '@/models/index.js'; import type { Config } from '@/config.js'; import type Logger from '@/logger.js'; import { bindThis } from '@/decorators.js'; @@ -29,6 +29,9 @@ export class CleanProcessorService { @Inject(DI.antennaNotesRepository) private antennaNotesRepository: AntennaNotesRepository, + @Inject(DI.roleAssignmentsRepository) + private roleAssignmentsRepository: RoleAssignmentsRepository, + private queueLoggerService: QueueLoggerService, private idService: IdService, ) { @@ -56,6 +59,17 @@ export class CleanProcessorService { id: LessThan(this.idService.genId(new Date(Date.now() - (1000 * 60 * 60 * 24 * 90)))), }); + const expiredRoleAssignments = await this.roleAssignmentsRepository.createQueryBuilder('assign') + .where('assign.expiresAt IS NOT NULL') + .andWhere('assign.expiresAt < :now', { now: new Date() }) + .getMany(); + + if (expiredRoleAssignments.length > 0) { + await this.roleAssignmentsRepository.delete({ + id: In(expiredRoleAssignments.map(x => x.id)), + }); + } + this.logger.succ('Cleaned.'); done(); } |