mirror of
https://codeberg.org/yeentown/barkey.git
synced 2025-07-07 20:44:34 +00:00
pack users with "me" context in AbuseUserReportEntityService
This commit is contained in:
parent
36d7126992
commit
cfbf2c9c8e
2 changed files with 9 additions and 6 deletions
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
import { Inject, Injectable } from '@nestjs/common';
|
import { Inject, Injectable } from '@nestjs/common';
|
||||||
import { DI } from '@/di-symbols.js';
|
import { DI } from '@/di-symbols.js';
|
||||||
import type { AbuseUserReportsRepository } from '@/models/_.js';
|
import type { AbuseUserReportsRepository, MiUser } from '@/models/_.js';
|
||||||
import { awaitAll } from '@/misc/prelude/await-all.js';
|
import { awaitAll } from '@/misc/prelude/await-all.js';
|
||||||
import type { MiAbuseUserReport } from '@/models/AbuseUserReport.js';
|
import type { MiAbuseUserReport } from '@/models/AbuseUserReport.js';
|
||||||
import { bindThis } from '@/decorators.js';
|
import { bindThis } from '@/decorators.js';
|
||||||
|
@ -32,9 +32,11 @@ export class AbuseUserReportEntityService {
|
||||||
packedTargetUser?: Packed<'UserDetailedNotMe'>,
|
packedTargetUser?: Packed<'UserDetailedNotMe'>,
|
||||||
packedAssignee?: Packed<'UserDetailedNotMe'>,
|
packedAssignee?: Packed<'UserDetailedNotMe'>,
|
||||||
},
|
},
|
||||||
|
me?: MiUser | null,
|
||||||
) {
|
) {
|
||||||
const report = typeof src === 'object' ? src : await this.abuseUserReportsRepository.findOneByOrFail({ id: src });
|
const report = typeof src === 'object' ? src : await this.abuseUserReportsRepository.findOneByOrFail({ id: src });
|
||||||
|
|
||||||
|
// noinspection ES6MissingAwait
|
||||||
return await awaitAll({
|
return await awaitAll({
|
||||||
id: report.id,
|
id: report.id,
|
||||||
createdAt: this.idService.parse(report.id).date.toISOString(),
|
createdAt: this.idService.parse(report.id).date.toISOString(),
|
||||||
|
@ -43,10 +45,10 @@ export class AbuseUserReportEntityService {
|
||||||
reporterId: report.reporterId,
|
reporterId: report.reporterId,
|
||||||
targetUserId: report.targetUserId,
|
targetUserId: report.targetUserId,
|
||||||
assigneeId: report.assigneeId,
|
assigneeId: report.assigneeId,
|
||||||
reporter: hint?.packedReporter ?? this.userEntityService.pack(report.reporter ?? report.reporterId, null, {
|
reporter: hint?.packedReporter ?? this.userEntityService.pack(report.reporter ?? report.reporterId, me, {
|
||||||
schema: 'UserDetailedNotMe',
|
schema: 'UserDetailedNotMe',
|
||||||
}),
|
}),
|
||||||
targetUser: hint?.packedTargetUser ?? this.userEntityService.pack(report.targetUser ?? report.targetUserId, null, {
|
targetUser: hint?.packedTargetUser ?? this.userEntityService.pack(report.targetUser ?? report.targetUserId, me, {
|
||||||
schema: 'UserDetailedNotMe',
|
schema: 'UserDetailedNotMe',
|
||||||
}),
|
}),
|
||||||
assignee: report.assigneeId ? hint?.packedAssignee ?? this.userEntityService.pack(report.assignee ?? report.assigneeId, null, {
|
assignee: report.assigneeId ? hint?.packedAssignee ?? this.userEntityService.pack(report.assignee ?? report.assigneeId, null, {
|
||||||
|
@ -61,13 +63,14 @@ export class AbuseUserReportEntityService {
|
||||||
@bindThis
|
@bindThis
|
||||||
public async packMany(
|
public async packMany(
|
||||||
reports: MiAbuseUserReport[],
|
reports: MiAbuseUserReport[],
|
||||||
|
me?: MiUser | null,
|
||||||
) {
|
) {
|
||||||
const _reporters = reports.map(({ reporter, reporterId }) => reporter ?? reporterId);
|
const _reporters = reports.map(({ reporter, reporterId }) => reporter ?? reporterId);
|
||||||
const _targetUsers = reports.map(({ targetUser, targetUserId }) => targetUser ?? targetUserId);
|
const _targetUsers = reports.map(({ targetUser, targetUserId }) => targetUser ?? targetUserId);
|
||||||
const _assignees = reports.map(({ assignee, assigneeId }) => assignee ?? assigneeId).filter(x => x != null);
|
const _assignees = reports.map(({ assignee, assigneeId }) => assignee ?? assigneeId).filter(x => x != null);
|
||||||
const _userMap = await this.userEntityService.packMany(
|
const _userMap = await this.userEntityService.packMany(
|
||||||
[..._reporters, ..._targetUsers, ..._assignees],
|
[..._reporters, ..._targetUsers, ..._assignees],
|
||||||
null,
|
me,
|
||||||
{ schema: 'UserDetailedNotMe' },
|
{ schema: 'UserDetailedNotMe' },
|
||||||
).then(users => new Map(users.map(u => [u.id, u])));
|
).then(users => new Map(users.map(u => [u.id, u])));
|
||||||
return Promise.all(
|
return Promise.all(
|
||||||
|
@ -75,7 +78,7 @@ export class AbuseUserReportEntityService {
|
||||||
const packedReporter = _userMap.get(report.reporterId);
|
const packedReporter = _userMap.get(report.reporterId);
|
||||||
const packedTargetUser = _userMap.get(report.targetUserId);
|
const packedTargetUser = _userMap.get(report.targetUserId);
|
||||||
const packedAssignee = report.assigneeId != null ? _userMap.get(report.assigneeId) : undefined;
|
const packedAssignee = report.assigneeId != null ? _userMap.get(report.assigneeId) : undefined;
|
||||||
return this.pack(report, { packedReporter, packedTargetUser, packedAssignee });
|
return this.pack(report, { packedReporter, packedTargetUser, packedAssignee }, me);
|
||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -134,7 +134,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint-
|
||||||
|
|
||||||
const reports = await query.limit(ps.limit).getMany();
|
const reports = await query.limit(ps.limit).getMany();
|
||||||
|
|
||||||
return await this.abuseUserReportEntityService.packMany(reports);
|
return await this.abuseUserReportEntityService.packMany(reports, me);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue