From c7d4264ecf66fd930c13e3da0627c15ddb1aab67 Mon Sep 17 00:00:00 2001 From: syuilo Date: Sat, 6 May 2023 09:34:21 +0900 Subject: refactor --- .../processors/ExportAntennasProcessorService.ts | 8 ++- .../processors/ImportAntennasProcessorService.ts | 71 +++++++++++----------- 2 files changed, 43 insertions(+), 36 deletions(-) (limited to 'packages/backend/src/queue/processors') diff --git a/packages/backend/src/queue/processors/ExportAntennasProcessorService.ts b/packages/backend/src/queue/processors/ExportAntennasProcessorService.ts index dba764dc35..894903e79b 100644 --- a/packages/backend/src/queue/processors/ExportAntennasProcessorService.ts +++ b/packages/backend/src/queue/processors/ExportAntennasProcessorService.ts @@ -9,10 +9,10 @@ import Logger from '@/logger.js'; import { DriveService } from '@/core/DriveService.js'; import { bindThis } from '@/decorators.js'; import { createTemp } from '@/misc/create-temp.js'; +import { UtilityService } from '@/core/UtilityService.js'; import { QueueLoggerService } from '../QueueLoggerService.js'; import type { DBExportAntennasData } from '../types.js'; import type Bull from 'bull'; -import { UtilityService } from '@/core/UtilityService.js'; @Injectable() export class ExportAntennasProcessorService { @@ -21,12 +21,16 @@ export class ExportAntennasProcessorService { constructor ( @Inject(DI.config) private config: Config, + @Inject(DI.usersRepository) private usersRepository: UsersRepository, + @Inject(DI.antennasRepository) private antennsRepository: AntennasRepository, + @Inject(DI.userListJoiningsRepository) private userListJoiningsRepository: UserListJoiningsRepository, + private driveService: DriveService, private utilityService: UtilityService, private queueLoggerService: QueueLoggerService, @@ -72,7 +76,7 @@ export class ExportAntennasProcessorService { keywords: antenna.keywords, excludeKeywords: antenna.excludeKeywords, users: antenna.users, - userListAcct: typeof users !== 'undefined' ? users.map((u) => { + userListAccts: typeof users !== 'undefined' ? users.map((u) => { return this.utilityService.getFullApAccount(u.username, u.host); // acct }) : null, caseSensitive: antenna.caseSensitive, diff --git a/packages/backend/src/queue/processors/ImportAntennasProcessorService.ts b/packages/backend/src/queue/processors/ImportAntennasProcessorService.ts index 67d255bdd3..d06131b8c8 100644 --- a/packages/backend/src/queue/processors/ImportAntennasProcessorService.ts +++ b/packages/backend/src/queue/processors/ImportAntennasProcessorService.ts @@ -10,12 +10,47 @@ import { QueueLoggerService } from '../QueueLoggerService.js'; import { DBAntennaImportJobData } from '../types.js'; import type Bull from 'bull'; +const validate = new Ajv().compile({ + type: 'object', + properties: { + name: { type: 'string', minLength: 1, maxLength: 100 }, + src: { type: 'string', enum: ['home', 'all', 'users', 'list'] }, + userListAccts: { + type: 'array', + items: { + type: 'string', + }, + nullable: true, + }, + keywords: { type: 'array', items: { + type: 'array', items: { + type: 'string', + }, + } }, + excludeKeywords: { type: 'array', items: { + type: 'array', items: { + type: 'string', + }, + } }, + users: { type: 'array', items: { + type: 'string', + } }, + caseSensitive: { type: 'boolean' }, + withReplies: { type: 'boolean' }, + withFile: { type: 'boolean' }, + notify: { type: 'boolean' }, + }, + required: ['name', 'src', 'keywords', 'excludeKeywords', 'users', 'caseSensitive', 'withReplies', 'withFile', 'notify'], +}); + @Injectable() export class ImportAntennasProcessorService { private logger: Logger; + constructor ( @Inject(DI.antennasRepository) private antennasRepository: AntennasRepository, + private queueLoggerService: QueueLoggerService, private idService: IdService, private globalEventService: GlobalEventService, @@ -27,38 +62,6 @@ export class ImportAntennasProcessorService { public async process(job: Bull.Job, done: () => void): Promise { const now = new Date(); try { - const validate = new Ajv().compile({ - type: 'object', - properties: { - name: { type: 'string', minLength: 1, maxLength: 100 }, - src: { type: 'string', enum: ['home', 'all', 'users', 'list'] }, - userListAcct: { - type: 'array', - items: { - type: 'string', - }, - nullable: true, - }, - keywords: { type: 'array', items: { - type: 'array', items: { - type: 'string', - }, - } }, - excludeKeywords: { type: 'array', items: { - type: 'array', items: { - type: 'string', - }, - } }, - users: { type: 'array', items: { - type: 'string', - } }, - caseSensitive: { type: 'boolean' }, - withReplies: { type: 'boolean' }, - withFile: { type: 'boolean' }, - notify: { type: 'boolean' }, - }, - required: ['name', 'src', 'keywords', 'excludeKeywords', 'users', 'caseSensitive', 'withReplies', 'withFile', 'notify'], - }); for (const antenna of job.data.antenna) { if (antenna.keywords.length === 0 || antenna.keywords[0].every(x => x === '')) continue; if (!validate(antenna)) { @@ -71,11 +74,11 @@ export class ImportAntennasProcessorService { lastUsedAt: now, userId: job.data.user.id, name: antenna.name, - src: antenna.src === 'list' && antenna.userListAcct ? 'users' : antenna.src, + src: antenna.src === 'list' && antenna.userListAccts ? 'users' : antenna.src, userListId: null, keywords: antenna.keywords, excludeKeywords: antenna.excludeKeywords, - users: (antenna.src === 'list' && antenna.userListAcct !== null ? antenna.userListAcct : antenna.users).filter(Boolean), + users: (antenna.src === 'list' && antenna.userListAccts !== null ? antenna.userListAccts : antenna.users).filter(Boolean), caseSensitive: antenna.caseSensitive, withReplies: antenna.withReplies, withFile: antenna.withFile, -- cgit v1.2.3-freya