Skip to content

Commit

Permalink
pack(Many) の me が optional にならないように
Browse files Browse the repository at this point in the history
  • Loading branch information
riku6460 committed Oct 10, 2023
1 parent 1a5ba39 commit df0a663
Show file tree
Hide file tree
Showing 26 changed files with 36 additions and 35 deletions.
4 changes: 2 additions & 2 deletions packages/backend/src/core/AnnouncementService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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', {
Expand Down Expand Up @@ -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,
Expand Down
2 changes: 1 addition & 1 deletion packages/backend/src/core/QueryService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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 => {
Expand Down
2 changes: 1 addition & 1 deletion packages/backend/src/core/UserListService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion packages/backend/src/core/entities/AppEntityService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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 });

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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 });

Expand Down
2 changes: 1 addition & 1 deletion packages/backend/src/core/entities/ChannelEntityService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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 });
Expand Down
4 changes: 2 additions & 2 deletions packages/backend/src/core/entities/ClipEntityService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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 });
Expand All @@ -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')
Expand Down
4 changes: 2 additions & 2 deletions packages/backend/src/core/entities/FlashEntityService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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 });
Expand All @@ -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')
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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 });

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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 });

Expand Down
4 changes: 2 additions & 2 deletions packages/backend/src/core/entities/FollowingEntityService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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 });
Expand All @@ -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')
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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: {
Expand Down
2 changes: 1 addition & 1 deletion packages/backend/src/core/entities/MutingEntityService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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 });

Expand Down
4 changes: 2 additions & 2 deletions packages/backend/src/core/entities/NoteEntityService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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 });

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
},
Expand Down
4 changes: 2 additions & 2 deletions packages/backend/src/core/entities/PageEntityService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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 });
Expand Down Expand Up @@ -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')
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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 });

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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 });

Expand Down
2 changes: 1 addition & 1 deletion packages/backend/src/core/entities/RoleEntityService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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 });

Expand Down
4 changes: 2 additions & 2 deletions packages/backend/src/core/entities/UserEntityService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down Expand Up @@ -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,
Expand Down
5 changes: 3 additions & 2 deletions packages/backend/src/core/entities/UserListEntityService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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';
Expand Down Expand Up @@ -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,
})));
}
Expand Down
2 changes: 1 addition & 1 deletion packages/backend/src/server/api/endpoints/users/flashs.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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);
});
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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);
});
}
}

0 comments on commit df0a663

Please sign in to comment.