fix: removal condition fetching

This commit is contained in:
아르페 2024-02-16 14:31:50 +09:00 committed by 무라쿠모
parent a5fd3dd7fc
commit c28afda4bf
No known key found for this signature in database
GPG key ID: 139D6573F92DA9F7
3 changed files with 29 additions and 7 deletions

View file

@ -428,7 +428,9 @@ export class UserEntityService implements OnModuleInit {
const profile = isDetailed
? (opts.userProfile ?? await this.userProfilesRepository.findOneByOrFail({ userId: user.id }))
: null;
const autoRemovalCondition = await this.autoRemovalConditionRepository.findOneBy({ id: user.autoRemovalConditionId });
let relation: UserRelation | null = null;
if (meId && !isMe && isDetailed) {
if (opts.userRelations) {

View file

@ -5,8 +5,10 @@
import { Inject, Injectable } from '@nestjs/common';
import { Endpoint } from '@/server/api/endpoint-base.js';
import type { AutoRemovalConditionRepository, UsersRepository } from '@/models/_.js';
import type { AutoRemovalConditionRepository, MiAutoRemovalCondition, UsersRepository } from '@/models/_.js';
import { DI } from '@/di-symbols.js';
import { UserEntityService } from '@/core/entities/UserEntityService.js';
import { GlobalEventService } from '@/core/GlobalEventService.js';
export const meta = {
tags: ['account'],
@ -47,6 +49,9 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint-
@Inject(DI.usersRepository)
private usersRepository: UsersRepository,
private userEntityService: UserEntityService,
private globalEventService: GlobalEventService,
) {
super(meta, paramDef, async (ps, me) => {
await this.usersRepository.update(me.id, { autoRemoval: ps.active });
@ -55,7 +60,21 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint-
noPiningNotes: ps.noPiningNotes,
noSpecifiedNotes: ps.noSpecifiedNotes,
};
await this.autoRemovalConditionRepository.update(me.autoRemovalConditionId, updated);
const updates = {} as Partial<MiAutoRemovalCondition>;
if (ps.deleteAfter !== undefined) updates.deleteAfter = ps.deleteAfter;
if (ps.noPiningNotes !== undefined) updates.noPiningNotes = ps.noPiningNotes;
if (ps.noSpecifiedNotes !== undefined) updates.noSpecifiedNotes = ps.noSpecifiedNotes;
if (Object.keys(updates).length > 0) await this.autoRemovalConditionRepository.update(me.autoRemovalConditionId, updated);
const iObj = await this.userEntityService.pack(me.id, me, {
schema: 'MeDetailed',
includeSecrets: true,
});
// Publish meUpdated event
this.globalEventService.publishMainStream(me.id, 'meUpdated', iObj);
return iObj;
});
}
}