循環参照エラーを解消
This commit is contained in:
parent
6af0c44712
commit
ea87e2318a
|
@ -16,7 +16,7 @@ import { bindThis } from '@/decorators.js';
|
||||||
import type { PrivateKeyWithPem } from '@misskey-dev/node-http-message-signatures';
|
import type { PrivateKeyWithPem } from '@misskey-dev/node-http-message-signatures';
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class AccountUpdateService {
|
export class AccountUpdateService implements OnModuleInit {
|
||||||
private apDeliverManagerService: ApDeliverManagerService;
|
private apDeliverManagerService: ApDeliverManagerService;
|
||||||
constructor(
|
constructor(
|
||||||
private moduleRef: ModuleRef,
|
private moduleRef: ModuleRef,
|
||||||
|
@ -30,6 +30,10 @@ export class AccountUpdateService {
|
||||||
) {
|
) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async onModuleInit() {
|
||||||
|
this.apDeliverManagerService = this.moduleRef.get(ApDeliverManagerService.name);
|
||||||
|
}
|
||||||
|
|
||||||
private async createUpdatePersonActivity(user: MiLocalUser) {
|
private async createUpdatePersonActivity(user: MiLocalUser) {
|
||||||
return this.apRendererService.addContext(
|
return this.apRendererService.addContext(
|
||||||
this.apRendererService.renderUpdate(
|
this.apRendererService.renderUpdate(
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
* SPDX-License-Identifier: AGPL-3.0-only
|
* SPDX-License-Identifier: AGPL-3.0-only
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { Inject, Injectable } from '@nestjs/common';
|
import { Inject, Injectable, OnModuleInit } from '@nestjs/common';
|
||||||
import { IsNull, Not } from 'typeorm';
|
import { IsNull, Not } from 'typeorm';
|
||||||
import { DI } from '@/di-symbols.js';
|
import { DI } from '@/di-symbols.js';
|
||||||
import type { FollowingsRepository } from '@/models/_.js';
|
import type { FollowingsRepository } from '@/models/_.js';
|
||||||
|
@ -17,6 +17,7 @@ import type Logger from '@/logger.js';
|
||||||
import { UserKeypairService } from '../UserKeypairService.js';
|
import { UserKeypairService } from '../UserKeypairService.js';
|
||||||
import { ApLoggerService } from './ApLoggerService.js';
|
import { ApLoggerService } from './ApLoggerService.js';
|
||||||
import type { PrivateKeyWithPem } from '@misskey-dev/node-http-message-signatures';
|
import type { PrivateKeyWithPem } from '@misskey-dev/node-http-message-signatures';
|
||||||
|
import { ModuleRef } from '@nestjs/core';
|
||||||
|
|
||||||
interface IRecipe {
|
interface IRecipe {
|
||||||
type: string;
|
type: string;
|
||||||
|
@ -212,21 +213,27 @@ class DeliverManager {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class ApDeliverManagerService {
|
export class ApDeliverManagerService implements OnModuleInit {
|
||||||
private logger: Logger;
|
private logger: Logger;
|
||||||
|
private accountUpdateService: AccountUpdateService;
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
|
private moduleRef: ModuleRef,
|
||||||
|
|
||||||
@Inject(DI.followingsRepository)
|
@Inject(DI.followingsRepository)
|
||||||
private followingsRepository: FollowingsRepository,
|
private followingsRepository: FollowingsRepository,
|
||||||
|
|
||||||
private userKeypairService: UserKeypairService,
|
private userKeypairService: UserKeypairService,
|
||||||
private queueService: QueueService,
|
private queueService: QueueService,
|
||||||
private accountUpdateService: AccountUpdateService,
|
|
||||||
private apLoggerService: ApLoggerService,
|
private apLoggerService: ApLoggerService,
|
||||||
) {
|
) {
|
||||||
this.logger = this.apLoggerService.logger.createSubLogger('deliver-manager');
|
this.logger = this.apLoggerService.logger.createSubLogger('deliver-manager');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async onModuleInit() {
|
||||||
|
this.accountUpdateService = this.moduleRef.get(AccountUpdateService.name);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Deliver activity to followers
|
* Deliver activity to followers
|
||||||
* @param actor
|
* @param actor
|
||||||
|
|
|
@ -31,6 +31,7 @@ import { ApDeliverManagerService } from '@/core/activitypub/ApDeliverManagerServ
|
||||||
import { RelayService } from '@/core/RelayService.js';
|
import { RelayService } from '@/core/RelayService.js';
|
||||||
import { ApLoggerService } from '@/core/activitypub/ApLoggerService.js';
|
import { ApLoggerService } from '@/core/activitypub/ApLoggerService.js';
|
||||||
import { MiRemoteUser } from '@/models/User.js';
|
import { MiRemoteUser } from '@/models/User.js';
|
||||||
|
import { UserKeypairService } from '@/core/UserKeypairService.js';
|
||||||
|
|
||||||
function genHost() {
|
function genHost() {
|
||||||
return randomString() + '.example.com';
|
return randomString() + '.example.com';
|
||||||
|
@ -47,6 +48,9 @@ describe('UserSuspendService', () => {
|
||||||
let globalEventService: jest.Mocked<GlobalEventService>;
|
let globalEventService: jest.Mocked<GlobalEventService>;
|
||||||
let apRendererService: jest.Mocked<ApRendererService>;
|
let apRendererService: jest.Mocked<ApRendererService>;
|
||||||
let moderationLogService: jest.Mocked<ModerationLogService>;
|
let moderationLogService: jest.Mocked<ModerationLogService>;
|
||||||
|
let userKeypairService: jest.Mocked<UserKeypairService>;
|
||||||
|
let accountUpdateService: AccountUpdateService;
|
||||||
|
let apDeliverManagerService: ApDeliverManagerService;
|
||||||
|
|
||||||
async function createUser(data: Partial<MiUser> = {}): Promise<MiUser> {
|
async function createUser(data: Partial<MiUser> = {}): Promise<MiUser> {
|
||||||
const user = {
|
const user = {
|
||||||
|
@ -92,6 +96,14 @@ describe('UserSuspendService', () => {
|
||||||
UserSuspendService,
|
UserSuspendService,
|
||||||
AccountUpdateService,
|
AccountUpdateService,
|
||||||
ApDeliverManagerService,
|
ApDeliverManagerService,
|
||||||
|
{
|
||||||
|
provide: AccountUpdateService.name,
|
||||||
|
useExisting: AccountUpdateService,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
provide: ApDeliverManagerService.name,
|
||||||
|
useExisting: ApDeliverManagerService,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
provide: UserEntityService,
|
provide: UserEntityService,
|
||||||
useFactory: () => ({
|
useFactory: () => ({
|
||||||
|
@ -145,6 +157,12 @@ describe('UserSuspendService', () => {
|
||||||
},
|
},
|
||||||
}),
|
}),
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
provide: UserKeypairService,
|
||||||
|
useFactory: () => ({
|
||||||
|
refreshAndPrepareEd25519KeyPair: jest.fn(),
|
||||||
|
}),
|
||||||
|
}
|
||||||
],
|
],
|
||||||
}).compile();
|
}).compile();
|
||||||
|
|
||||||
|
@ -159,6 +177,12 @@ describe('UserSuspendService', () => {
|
||||||
globalEventService = app.get<GlobalEventService>(GlobalEventService) as jest.Mocked<GlobalEventService>;
|
globalEventService = app.get<GlobalEventService>(GlobalEventService) as jest.Mocked<GlobalEventService>;
|
||||||
apRendererService = app.get<ApRendererService>(ApRendererService) as jest.Mocked<ApRendererService>;
|
apRendererService = app.get<ApRendererService>(ApRendererService) as jest.Mocked<ApRendererService>;
|
||||||
moderationLogService = app.get<ModerationLogService>(ModerationLogService) as jest.Mocked<ModerationLogService>;
|
moderationLogService = app.get<ModerationLogService>(ModerationLogService) as jest.Mocked<ModerationLogService>;
|
||||||
|
userKeypairService = app.get<UserKeypairService>(UserKeypairService) as jest.Mocked<UserKeypairService>;
|
||||||
|
|
||||||
|
apDeliverManagerService = app.get<ApDeliverManagerService>(ApDeliverManagerService);
|
||||||
|
await apDeliverManagerService.onModuleInit();
|
||||||
|
accountUpdateService = app.get<AccountUpdateService>(AccountUpdateService.name);
|
||||||
|
await accountUpdateService.onModuleInit();
|
||||||
});
|
});
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
|
|
Loading…
Reference in New Issue