pack(Many) の me が optional にならないように
This commit is contained in:
parent
1a5ba39329
commit
df0a663283
|
@ -93,7 +93,7 @@ export class AnnouncementService {
|
|||
userId: values.userId,
|
||||
}).then(x => this.announcementsRepository.findOneByOrFail(x.identifiers[0]));
|
||||
|
||||
const packed = (await this.packMany([announcement]))[0];
|
||||
const packed = (await this.packMany([announcement], null))[0];
|
||||
|
||||
if (values.userId) {
|
||||
this.globalEventService.publishMainStream(values.userId, 'announcementCreated', {
|
||||
|
@ -366,7 +366,7 @@ export class AnnouncementService {
|
|||
@bindThis
|
||||
public async packMany(
|
||||
announcements: (MiAnnouncement & { isRead?: boolean | null })[],
|
||||
me?: { id: MiUser['id'] } | null | undefined,
|
||||
me: { id: MiUser['id'] } | null | undefined,
|
||||
): Promise<Packed<'Announcement'>[]> {
|
||||
return announcements.map(announcement => ({
|
||||
id: announcement.id,
|
||||
|
|
|
@ -188,7 +188,7 @@ export class QueryService {
|
|||
}
|
||||
|
||||
@bindThis
|
||||
public generateVisibilityQuery(q: SelectQueryBuilder<any>, me?: { id: MiUser['id'] } | null): void {
|
||||
public generateVisibilityQuery(q: SelectQueryBuilder<any>, me: { id: MiUser['id'] } | null): void {
|
||||
// This code must always be synchronized with the checks in Notes.isVisibleForMe.
|
||||
if (me == null) {
|
||||
q.andWhere(new Brackets(qb => {
|
||||
|
|
|
@ -119,7 +119,7 @@ export class UserListService implements OnApplicationShutdown {
|
|||
});
|
||||
|
||||
this.globalEventService.publishInternalEvent('userListMemberRemoved', { userListId: list.id, memberId: target.id });
|
||||
this.globalEventService.publishUserListStream(list.id, 'userRemoved', await this.userEntityService.pack(target));
|
||||
this.globalEventService.publishUserListStream(list.id, 'userRemoved', await this.userEntityService.pack(target, null));
|
||||
}
|
||||
|
||||
@bindThis
|
||||
|
|
|
@ -25,7 +25,7 @@ export class AppEntityService {
|
|||
@bindThis
|
||||
public async pack(
|
||||
src: MiApp['id'] | MiApp,
|
||||
me?: { id: MiUser['id'] } | null | undefined,
|
||||
me: { id: MiUser['id'] } | null | undefined,
|
||||
options?: {
|
||||
detail?: boolean,
|
||||
includeSecret?: boolean,
|
||||
|
|
|
@ -25,7 +25,7 @@ export class AuthSessionEntityService {
|
|||
@bindThis
|
||||
public async pack(
|
||||
src: MiAuthSession['id'] | MiAuthSession,
|
||||
me?: { id: MiUser['id'] } | null | undefined,
|
||||
me: { id: MiUser['id'] } | null | undefined,
|
||||
) {
|
||||
const session = typeof src === 'object' ? src : await this.authSessionsRepository.findOneByOrFail({ id: src });
|
||||
|
||||
|
|
|
@ -26,7 +26,7 @@ export class BlockingEntityService {
|
|||
@bindThis
|
||||
public async pack(
|
||||
src: MiBlocking['id'] | MiBlocking,
|
||||
me?: { id: MiUser['id'] } | null | undefined,
|
||||
me: { id: MiUser['id'] } | null | undefined,
|
||||
): Promise<Packed<'Blocking'>> {
|
||||
const blocking = typeof src === 'object' ? src : await this.blockingsRepository.findOneByOrFail({ id: src });
|
||||
|
||||
|
|
|
@ -44,7 +44,7 @@ export class ChannelEntityService {
|
|||
@bindThis
|
||||
public async pack(
|
||||
src: MiChannel['id'] | MiChannel,
|
||||
me?: { id: MiUser['id'] } | null | undefined,
|
||||
me: { id: MiUser['id'] } | null | undefined,
|
||||
detailed?: boolean,
|
||||
): Promise<Packed<'Channel'>> {
|
||||
const channel = typeof src === 'object' ? src : await this.channelsRepository.findOneByOrFail({ id: src });
|
||||
|
|
|
@ -29,7 +29,7 @@ export class ClipEntityService {
|
|||
@bindThis
|
||||
public async pack(
|
||||
src: MiClip['id'] | MiClip,
|
||||
me?: { id: MiUser['id'] } | null | undefined,
|
||||
me: { id: MiUser['id'] } | null | undefined,
|
||||
): Promise<Packed<'Clip'>> {
|
||||
const meId = me ? me.id : null;
|
||||
const clip = typeof src === 'object' ? src : await this.clipsRepository.findOneByOrFail({ id: src });
|
||||
|
@ -51,7 +51,7 @@ export class ClipEntityService {
|
|||
@bindThis
|
||||
public async packMany(
|
||||
clips: (MiClip['id'] | MiClip)[],
|
||||
me?: { id: MiUser['id'] } | null | undefined,
|
||||
me: { id: MiUser['id'] } | null | undefined,
|
||||
) : Promise<Packed<'Clip'>[]> {
|
||||
return (await Promise.allSettled(clips.map(x => this.pack(x, me))))
|
||||
.filter(result => result.status === 'fulfilled')
|
||||
|
|
|
@ -30,7 +30,7 @@ export class FlashEntityService {
|
|||
@bindThis
|
||||
public async pack(
|
||||
src: MiFlash['id'] | MiFlash,
|
||||
me?: { id: MiUser['id'] } | null | undefined,
|
||||
me: { id: MiUser['id'] } | null | undefined,
|
||||
): Promise<Packed<'Flash'>> {
|
||||
const meId = me ? me.id : null;
|
||||
const flash = typeof src === 'object' ? src : await this.flashsRepository.findOneByOrFail({ id: src });
|
||||
|
@ -52,7 +52,7 @@ export class FlashEntityService {
|
|||
@bindThis
|
||||
public async packMany(
|
||||
flashs: MiFlash[],
|
||||
me?: { id: MiUser['id'] } | null | undefined,
|
||||
me: { id: MiUser['id'] } | null | undefined,
|
||||
) : Promise<Packed<'Flash'>[]> {
|
||||
return (await Promise.allSettled(flashs.map(x => this.pack(x, me))))
|
||||
.filter(result => result.status === 'fulfilled')
|
||||
|
|
|
@ -26,7 +26,7 @@ export class FlashLikeEntityService {
|
|||
@bindThis
|
||||
public async pack(
|
||||
src: MiFlashLike['id'] | MiFlashLike,
|
||||
me?: { id: MiUser['id'] } | null | undefined,
|
||||
me: { id: MiUser['id'] } | null | undefined,
|
||||
) : Promise<Packed<'FlashLike'>> {
|
||||
const like = typeof src === 'object' ? src : await this.flashLikesRepository.findOneByOrFail({ id: src });
|
||||
|
||||
|
|
|
@ -26,7 +26,7 @@ export class FollowRequestEntityService {
|
|||
@bindThis
|
||||
public async pack(
|
||||
src: MiFollowRequest['id'] | MiFollowRequest,
|
||||
me?: { id: MiUser['id'] } | null | undefined,
|
||||
me: { id: MiUser['id'] } | null | undefined,
|
||||
) : Promise<Packed<'FollowRequest'>> {
|
||||
const request = typeof src === 'object' ? src : await this.followRequestsRepository.findOneByOrFail({ id: src });
|
||||
|
||||
|
|
|
@ -71,7 +71,7 @@ export class FollowingEntityService {
|
|||
@bindThis
|
||||
public async pack(
|
||||
src: MiFollowing['id'] | MiFollowing,
|
||||
me?: { id: MiUser['id'] } | null | undefined,
|
||||
me: { id: MiUser['id'] } | null | undefined,
|
||||
opts?: {
|
||||
populateFollowee?: boolean;
|
||||
populateFollower?: boolean;
|
||||
|
@ -98,7 +98,7 @@ export class FollowingEntityService {
|
|||
@bindThis
|
||||
public async packMany(
|
||||
followings: (MiFollowing['id'] | MiFollowing)[],
|
||||
me?: { id: MiUser['id'] } | null | undefined,
|
||||
me: { id: MiUser['id'] } | null | undefined,
|
||||
opts?: {
|
||||
populateFollowee?: boolean;
|
||||
populateFollower?: boolean;
|
||||
|
|
|
@ -32,7 +32,7 @@ export class GalleryPostEntityService {
|
|||
@bindThis
|
||||
public async pack(
|
||||
src: MiGalleryPost['id'] | MiGalleryPost,
|
||||
me?: { id: MiUser['id'] } | null | undefined,
|
||||
me: { id: MiUser['id'] } | null | undefined,
|
||||
): Promise<Packed<'GalleryPost'>> {
|
||||
const meId = me ? me.id : null;
|
||||
const post = typeof src === 'object' ? src : await this.galleryPostsRepository.findOneByOrFail({ id: src });
|
||||
|
@ -58,7 +58,7 @@ export class GalleryPostEntityService {
|
|||
@bindThis
|
||||
public async packMany(
|
||||
posts: MiGalleryPost[],
|
||||
me?: { id: MiUser['id'] } | null | undefined,
|
||||
me: { id: MiUser['id'] } | null | undefined,
|
||||
) : Promise<Packed<'GalleryPost'>[]> {
|
||||
return (await Promise.allSettled(posts.map(x => this.pack(x, me))))
|
||||
.filter(result => result.status === 'fulfilled')
|
||||
|
|
|
@ -26,7 +26,7 @@ export class InviteCodeEntityService {
|
|||
@bindThis
|
||||
public async pack(
|
||||
src: MiRegistrationTicket['id'] | MiRegistrationTicket,
|
||||
me?: { id: MiUser['id'] } | null | undefined,
|
||||
me: { id: MiUser['id'] } | null | undefined,
|
||||
): Promise<Packed<'InviteCode'>> {
|
||||
const target = typeof src === 'object' ? src : await this.registrationTicketsRepository.findOneOrFail({
|
||||
where: {
|
||||
|
|
|
@ -27,7 +27,7 @@ export class MutingEntityService {
|
|||
@bindThis
|
||||
public async pack(
|
||||
src: MiMuting['id'] | MiMuting,
|
||||
me?: { id: MiUser['id'] } | null | undefined,
|
||||
me: { id: MiUser['id'] } | null | undefined,
|
||||
): Promise<Packed<'Muting'>> {
|
||||
const muting = typeof src === 'object' ? src : await this.mutingsRepository.findOneByOrFail({ id: src });
|
||||
|
||||
|
|
|
@ -275,7 +275,7 @@ export class NoteEntityService implements OnModuleInit {
|
|||
@bindThis
|
||||
public async pack(
|
||||
src: MiNote['id'] | MiNote,
|
||||
me?: { id: MiUser['id'] } | null | undefined,
|
||||
me: { id: MiUser['id'] } | null | undefined,
|
||||
options?: {
|
||||
detail?: boolean;
|
||||
skipHide?: boolean;
|
||||
|
@ -396,7 +396,7 @@ export class NoteEntityService implements OnModuleInit {
|
|||
@bindThis
|
||||
public async packMany(
|
||||
notes: MiNote[],
|
||||
me?: { id: MiUser['id'] } | null | undefined,
|
||||
me: { id: MiUser['id'] } | null | undefined,
|
||||
options?: {
|
||||
detail?: boolean;
|
||||
skipHide?: boolean;
|
||||
|
|
|
@ -26,7 +26,7 @@ export class NoteFavoriteEntityService {
|
|||
@bindThis
|
||||
public async pack(
|
||||
src: MiNoteFavorite['id'] | MiNoteFavorite,
|
||||
me?: { id: MiUser['id'] } | null | undefined,
|
||||
me: { id: MiUser['id'] } | null | undefined,
|
||||
) : Promise<Packed<'NoteFavorite'>> {
|
||||
const favorite = typeof src === 'object' ? src : await this.noteFavoritesRepository.findOneByOrFail({ id: src });
|
||||
|
||||
|
|
|
@ -44,7 +44,7 @@ export class NoteReactionEntityService implements OnModuleInit {
|
|||
@bindThis
|
||||
public async pack(
|
||||
src: MiNoteReaction['id'] | MiNoteReaction,
|
||||
me?: { id: MiUser['id'] } | null | undefined,
|
||||
me: { id: MiUser['id'] } | null | undefined,
|
||||
options?: {
|
||||
withNote: boolean;
|
||||
},
|
||||
|
|
|
@ -36,7 +36,7 @@ export class PageEntityService {
|
|||
@bindThis
|
||||
public async pack(
|
||||
src: MiPage['id'] | MiPage,
|
||||
me?: { id: MiUser['id'] } | null | undefined,
|
||||
me: { id: MiUser['id'] } | null | undefined,
|
||||
): Promise<Packed<'Page'>> {
|
||||
const meId = me ? me.id : null;
|
||||
const page = typeof src === 'object' ? src : await this.pagesRepository.findOneByOrFail({ id: src });
|
||||
|
@ -109,7 +109,7 @@ export class PageEntityService {
|
|||
@bindThis
|
||||
public async packMany(
|
||||
pages: (MiPage['id'] | MiPage)[],
|
||||
me?: { id: MiUser['id'] } | null | undefined,
|
||||
me: { id: MiUser['id'] } | null | undefined,
|
||||
) : Promise<Packed<'Page'>[]> {
|
||||
return (await Promise.allSettled(pages.map(x => this.pack(x, me))))
|
||||
.filter(result => result.status === 'fulfilled')
|
||||
|
|
|
@ -26,7 +26,7 @@ export class PageLikeEntityService {
|
|||
@bindThis
|
||||
public async pack(
|
||||
src: MiPageLike['id'] | MiPageLike,
|
||||
me?: { id: MiUser['id'] } | null | undefined,
|
||||
me: { id: MiUser['id'] } | null | undefined,
|
||||
) : Promise<Packed<'PageLike'>> {
|
||||
const like = typeof src === 'object' ? src : await this.pageLikesRepository.findOneByOrFail({ id: src });
|
||||
|
||||
|
|
|
@ -27,7 +27,7 @@ export class RenoteMutingEntityService {
|
|||
@bindThis
|
||||
public async pack(
|
||||
src: MiRenoteMuting['id'] | MiRenoteMuting,
|
||||
me?: { id: MiUser['id'] } | null | undefined,
|
||||
me: { id: MiUser['id'] } | null | undefined,
|
||||
): Promise<Packed<'RenoteMuting'>> {
|
||||
const muting = typeof src === 'object' ? src : await this.renoteMutingsRepository.findOneByOrFail({ id: src });
|
||||
|
||||
|
|
|
@ -28,7 +28,7 @@ export class RoleEntityService {
|
|||
@bindThis
|
||||
public async pack(
|
||||
src: MiRole['id'] | MiRole,
|
||||
me?: { id: MiUser['id'] } | null | undefined,
|
||||
me: { id: MiUser['id'] } | null | undefined,
|
||||
) : Promise<Packed<'Role'>> {
|
||||
const role = typeof src === 'object' ? src : await this.rolesRepository.findOneByOrFail({ id: src });
|
||||
|
||||
|
|
|
@ -289,7 +289,7 @@ export class UserEntityService implements OnModuleInit {
|
|||
|
||||
public async pack<ExpectsMe extends boolean | null = null, D extends boolean = false>(
|
||||
src: MiUser['id'] | MiUser,
|
||||
me?: { id: MiUser['id']; } | null | undefined,
|
||||
me: { id: MiUser['id']; } | null | undefined,
|
||||
options?: {
|
||||
detail?: D,
|
||||
includeSecrets?: boolean,
|
||||
|
@ -494,7 +494,7 @@ export class UserEntityService implements OnModuleInit {
|
|||
|
||||
public async packMany<D extends boolean = false>(
|
||||
users: (MiUser['id'] | MiUser)[],
|
||||
me?: { id: MiUser['id'] } | null | undefined,
|
||||
me: { id: MiUser['id'] } | null | undefined,
|
||||
options?: {
|
||||
detail?: D,
|
||||
includeSecrets?: boolean,
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
import { Inject, Injectable } from '@nestjs/common';
|
||||
import { DI } from '@/di-symbols.js';
|
||||
import type { MiUserListMembership, UserListMembershipsRepository, UserListsRepository } from '@/models/_.js';
|
||||
import type { MiUser, MiUserListMembership, UserListMembershipsRepository, UserListsRepository } from '@/models/_.js';
|
||||
import type { Packed } from '@/misc/json-schema.js';
|
||||
import type { } from '@/models/Blocking.js';
|
||||
import type { MiUserList } from '@/models/UserList.js';
|
||||
|
@ -47,12 +47,13 @@ export class UserListEntityService {
|
|||
@bindThis
|
||||
public async packMembershipsMany(
|
||||
memberships: MiUserListMembership[],
|
||||
me: { id: MiUser['id']; } | null | undefined,
|
||||
) {
|
||||
return Promise.all(memberships.map(async x => ({
|
||||
id: x.id,
|
||||
createdAt: x.createdAt.toISOString(),
|
||||
userId: x.userId,
|
||||
user: await this.userEntityService.pack(x.userId),
|
||||
user: await this.userEntityService.pack(x.userId, me),
|
||||
withReplies: x.withReplies,
|
||||
})));
|
||||
}
|
||||
|
|
|
@ -56,7 +56,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
|
|||
.limit(ps.limit)
|
||||
.getMany();
|
||||
|
||||
return await this.flashEntityService.packMany(flashs);
|
||||
return await this.flashEntityService.packMany(flashs, me);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
@ -73,7 +73,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
|
|||
.limit(ps.limit)
|
||||
.getMany();
|
||||
|
||||
return this.userListEntityService.packMembershipsMany(memberships);
|
||||
return this.userListEntityService.packMembershipsMany(memberships, me);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue