From 26bd0b086acfcd89535ce88b1767b8789eda2cb6 Mon Sep 17 00:00:00 2001 From: caipira113 Date: Fri, 20 Oct 2023 03:55:09 +0900 Subject: [PATCH] fix --- .../1697737204579-deleteCreatedAt.js | 30 +++++++++++++++++++ packages/backend/src/config.ts | 7 +++++ .../backend/src/core/AnnouncementService.ts | 4 +-- packages/backend/src/core/MessagingService.ts | 8 ++--- .../entities/MessagingMessageEntityService.ts | 4 ++- .../src/core/entities/UserEntityService.ts | 2 +- .../core/entities/UserGroupEntityService.ts | 5 +++- .../backend/src/models/AbuseReportResolver.ts | 6 ---- .../backend/src/models/MessagingMessage.ts | 6 ---- packages/backend/src/models/UserGroup.ts | 6 ---- .../backend/src/models/UserGroupInvitation.ts | 5 ---- .../backend/src/models/UserGroupJoining.ts | 5 ---- .../admin/abuse-report-resolver/create.ts | 3 +- .../server/api/endpoints/admin/emoji/adds.ts | 4 --- .../api/endpoints/users/groups/create.ts | 6 ++-- .../users/groups/invitations/accept.ts | 3 +- .../api/endpoints/users/groups/invite.ts | 6 ++-- 17 files changed, 55 insertions(+), 55 deletions(-) create mode 100644 packages/backend/migration/1697737204579-deleteCreatedAt.js diff --git a/packages/backend/migration/1697737204579-deleteCreatedAt.js b/packages/backend/migration/1697737204579-deleteCreatedAt.js new file mode 100644 index 0000000000..5c0dc71ae8 --- /dev/null +++ b/packages/backend/migration/1697737204579-deleteCreatedAt.js @@ -0,0 +1,30 @@ + +export class DeleteCreatedAt1697737204579 { + name = 'DeleteCreatedAt1697737204579' + + async up(queryRunner) { + await queryRunner.query(`DROP INDEX "public"."IDX_e21cd3646e52ef9c94aaf17c2e"`); + await queryRunner.query(`DROP INDEX "public"."IDX_20e30aa35180e317e133d75316"`); + await queryRunner.query(`DROP INDEX "public"."IDX_20e30aa35180e317e133d75316"`); + await queryRunner.query(`DROP INDEX "public"."IDX_fdd74ab625ed0f6a30c47b00e0"`); + await queryRunner.query(`ALTER TABLE "messaging_message" DROP COLUMN "createdAt"`); + await queryRunner.query(`ALTER TABLE "user_group" DROP COLUMN "createdAt"`); + await queryRunner.query(`ALTER TABLE "user_group_invitation" DROP COLUMN "createdAt"`); + await queryRunner.query(`ALTER TABLE "user_group_invite" DROP COLUMN "createdAt"`); + await queryRunner.query(`ALTER TABLE "user_group_joining" DROP COLUMN "createdAt"`); + await queryRunner.query(`ALTER TABLE "abuse_report_resolver" DROP COLUMN "createdAt"`); + } + + async down(queryRunner) { + await queryRunner.query(`ALTER TABLE "abuse_report_resolver" ADD "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL`); + await queryRunner.query(`ALTER TABLE "user_group_joining" ADD "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL`); + await queryRunner.query(`ALTER TABLE "user_group_invite" ADD "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL`); + await queryRunner.query(`ALTER TABLE "user_group_invitation" ADD "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL`); + await queryRunner.query(`ALTER TABLE "user_group" ADD "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL`); + await queryRunner.query(`ALTER TABLE "messaging_message" ADD "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL`); + await queryRunner.query(`CREATE INDEX "IDX_fdd74ab625ed0f6a30c47b00e0" ON "abuse_report_resolver" ("createdAt") `); + await queryRunner.query(`CREATE INDEX "IDX_20e30aa35180e317e133d75316" ON "user_group" ("createdAt") `); + await queryRunner.query(`CREATE INDEX "IDX_e21cd3646e52ef9c94aaf17c2e" ON "messaging_message" ("createdAt") `); + } + +} diff --git a/packages/backend/src/config.ts b/packages/backend/src/config.ts index 96ff08ae30..1856600943 100644 --- a/packages/backend/src/config.ts +++ b/packages/backend/src/config.ts @@ -149,6 +149,13 @@ export type Config = { relashionshipJobPerSec: number | undefined; deliverJobMaxAttempts: number | undefined; inboxJobMaxAttempts: number | undefined; + + cloudLogging?: { + projectId: string; + saKeyPath: string; + logName?: string; + } + apFileBaseUrl: string | undefined; proxyRemoteFiles: boolean | undefined; signToActivityPubGet: boolean | undefined; diff --git a/packages/backend/src/core/AnnouncementService.ts b/packages/backend/src/core/AnnouncementService.ts index fd07fe134b..9fcb1b22bb 100644 --- a/packages/backend/src/core/AnnouncementService.ts +++ b/packages/backend/src/core/AnnouncementService.ts @@ -80,8 +80,8 @@ export class AnnouncementService { const packed = (await this.packMany([announcement]))[0]; if (announcement.isActive) { - if (announcement.userId) { - this.globalEventService.publishMainStream(announcement.userId, 'announcementCreated', { + if (values.userId) { + this.globalEventService.publishMainStream(values.userId, 'announcementCreated', { announcement: packed, }); diff --git a/packages/backend/src/core/MessagingService.ts b/packages/backend/src/core/MessagingService.ts index e6c8976ae4..cabad96ce7 100644 --- a/packages/backend/src/core/MessagingService.ts +++ b/packages/backend/src/core/MessagingService.ts @@ -56,11 +56,8 @@ export class MessagingService { @bindThis public async createMessage(user: { id: MiUser['id']; host: MiUser['host']; }, recipientUser: MiUser | null, recipientGroup: MiUserGroup | null, text: string | null | undefined, file: MiDriveFile | null, uri?: string) { - const data = new Date(); - const message = { - id: this.idService.genId(data), - createdAt: data, + id: this.idService.gen(Date.now()), fileId: file ? file.id : null, recipientId: recipientUser ? recipientUser.id : null, groupId: recipientGroup ? recipientGroup.id : null, @@ -135,7 +132,6 @@ export class MessagingService { const note = { id: message.id, - createdAt: message.createdAt, fileIds: message.fileId ? [message.fileId] : [], text: message.text, userId: message.userId, @@ -298,7 +294,7 @@ export class MessagingService { .where('message.groupId = :groupId', { groupId: groupId }) .andWhere('message.userId != :userId', { userId: userId }) .andWhere('NOT (:userId = ANY(message.reads))', { userId: userId }) - .andWhere('message.createdAt > :joinedAt', { joinedAt: joining.createdAt }) // 自分が加入する前の会話については、未読扱いしない + .andWhere('message.createdAt > :joinedAt', { joinedAt: this.idService.parse(joining.id) }) // 自分が加入する前の会話については、未読扱いしない .getOne().then(x => x != null); if (!unreadExist) { diff --git a/packages/backend/src/core/entities/MessagingMessageEntityService.ts b/packages/backend/src/core/entities/MessagingMessageEntityService.ts index 5011bb16aa..5716ceda1f 100644 --- a/packages/backend/src/core/entities/MessagingMessageEntityService.ts +++ b/packages/backend/src/core/entities/MessagingMessageEntityService.ts @@ -13,6 +13,7 @@ import { bindThis } from '@/decorators.js'; import { UserEntityService } from './UserEntityService.js'; import { DriveFileEntityService } from './DriveFileEntityService.js'; import { UserGroupEntityService } from './UserGroupEntityService.js'; +import { IdService } from '@/core/IdService.js'; @Injectable() export class MessagingMessageEntityService { @@ -20,6 +21,7 @@ export class MessagingMessageEntityService { @Inject(DI.messagingMessagesRepository) private messagingMessagesRepository: MessagingMessagesRepository, + private idService: IdService, private userEntityService: UserEntityService, private userGroupEntityService: UserGroupEntityService, private driveFileEntityService: DriveFileEntityService, @@ -44,7 +46,7 @@ export class MessagingMessageEntityService { return { id: message.id, - createdAt: message.createdAt.toISOString(), + createdAt: this.idService.parse(message.id).date.toISOString(), text: message.text, userId: message.userId, user: await this.userEntityService.pack(message.user ?? message.userId, me), diff --git a/packages/backend/src/core/entities/UserEntityService.ts b/packages/backend/src/core/entities/UserEntityService.ts index 0d338e7a13..cdee4b9ac7 100644 --- a/packages/backend/src/core/entities/UserEntityService.ts +++ b/packages/backend/src/core/entities/UserEntityService.ts @@ -233,7 +233,7 @@ export class UserEntityService implements OnModuleInit { .where('message.groupId = :groupId', { groupId: j.userGroupId }) .andWhere('message.userId != :userId', { userId: userId }) .andWhere('NOT (:userId = ANY(message.reads))', { userId: userId }) - .andWhere('message.createdAt > :joinedAt', { joinedAt: j.createdAt }) // 自分が加入する前の会話については、未読扱いしない + .andWhere('message.createdAt > :joinedAt', { joinedAt: this.idService.parse(j.id) }) // 自分が加入する前の会話については、未読扱いしない .getOne().then(x => x != null))); const [withUser, withGroups] = await Promise.all([ diff --git a/packages/backend/src/core/entities/UserGroupEntityService.ts b/packages/backend/src/core/entities/UserGroupEntityService.ts index e9faf50276..72de937062 100644 --- a/packages/backend/src/core/entities/UserGroupEntityService.ts +++ b/packages/backend/src/core/entities/UserGroupEntityService.ts @@ -9,6 +9,7 @@ import type { UserGroupJoiningsRepository, UserGroupsRepository } from '@/models import type { Packed } from '@/misc/json-schema.js'; import type { MiUserGroup } from '@/models/UserGroup.js'; import { bindThis } from '@/decorators.js'; +import { IdService } from '@/core/IdService.js'; @Injectable() export class UserGroupEntityService { @@ -18,6 +19,8 @@ export class UserGroupEntityService { @Inject(DI.userGroupJoiningsRepository) private userGroupJoiningsRepository: UserGroupJoiningsRepository, + + private idService: IdService, ) { } @@ -33,7 +36,7 @@ export class UserGroupEntityService { return { id: userGroup.id, - createdAt: userGroup.createdAt.toISOString(), + createdAt: this.idService.parse(userGroup.id).date.toISOString(), name: userGroup.name, ownerId: userGroup.userId, userIds: users.map((x: { userId: any; }) => x.userId), diff --git a/packages/backend/src/models/AbuseReportResolver.ts b/packages/backend/src/models/AbuseReportResolver.ts index f0a82fd1d8..bdcaeeb729 100644 --- a/packages/backend/src/models/AbuseReportResolver.ts +++ b/packages/backend/src/models/AbuseReportResolver.ts @@ -11,12 +11,6 @@ export class MiAbuseReportResolver { @PrimaryColumn(id()) public id: string; - @Index() - @Column('timestamp with time zone', { - comment: 'The created date of AbuseReportResolver', - }) - public createdAt: Date; - @Index() @Column('timestamp with time zone', { comment: 'The updated date of AbuseReportResolver', diff --git a/packages/backend/src/models/MessagingMessage.ts b/packages/backend/src/models/MessagingMessage.ts index f5a70e20e6..80b3c2c4c2 100644 --- a/packages/backend/src/models/MessagingMessage.ts +++ b/packages/backend/src/models/MessagingMessage.ts @@ -14,12 +14,6 @@ export class MiMessagingMessage { @PrimaryColumn(id()) public id: string; - @Index() - @Column('timestamp with time zone', { - comment: 'The created date of the MessagingMessage.', - }) - public createdAt: Date; - @Index() @Column({ ...id(), diff --git a/packages/backend/src/models/UserGroup.ts b/packages/backend/src/models/UserGroup.ts index 853170202b..96005898dd 100644 --- a/packages/backend/src/models/UserGroup.ts +++ b/packages/backend/src/models/UserGroup.ts @@ -12,12 +12,6 @@ export class MiUserGroup { @PrimaryColumn(id()) public id: string; - @Index() - @Column('timestamp with time zone', { - comment: 'The created date of the UserGroup.', - }) - public createdAt: Date; - @Column('varchar', { length: 256, }) diff --git a/packages/backend/src/models/UserGroupInvitation.ts b/packages/backend/src/models/UserGroupInvitation.ts index 9d809460ca..59b1aee163 100644 --- a/packages/backend/src/models/UserGroupInvitation.ts +++ b/packages/backend/src/models/UserGroupInvitation.ts @@ -14,11 +14,6 @@ export class MiUserGroupInvitation { @PrimaryColumn(id()) public id: string; - @Column('timestamp with time zone', { - comment: 'The created date of the UserGroupInvitation.', - }) - public createdAt: Date; - @Index() @Column({ ...id(), diff --git a/packages/backend/src/models/UserGroupJoining.ts b/packages/backend/src/models/UserGroupJoining.ts index d978a7277c..7cfb6dacb1 100644 --- a/packages/backend/src/models/UserGroupJoining.ts +++ b/packages/backend/src/models/UserGroupJoining.ts @@ -14,11 +14,6 @@ export class MiUserGroupJoining { @PrimaryColumn(id()) public id: string; - @Column('timestamp with time zone', { - comment: 'The created date of the UserGroupJoining.', - }) - public createdAt: Date; - @Index() @Column({ ...id(), diff --git a/packages/backend/src/server/api/endpoints/admin/abuse-report-resolver/create.ts b/packages/backend/src/server/api/endpoints/admin/abuse-report-resolver/create.ts index d72e3efe7a..a61337a15d 100644 --- a/packages/backend/src/server/api/endpoints/admin/abuse-report-resolver/create.ts +++ b/packages/backend/src/server/api/endpoints/admin/abuse-report-resolver/create.ts @@ -124,8 +124,7 @@ export default class extends Endpoint { ps.expiresAt === '1year' ? function () { expirationDate!.setUTCFullYear(expirationDate!.getUTCFullYear() + 1); } : function () { expirationDate = null; })(); return await this.abuseReportResolverRepository.insert({ - id: this.idService.genId(), - createdAt: now, + id: this.idService.gen(), updatedAt: now, name: ps.name, targetUserPattern: ps.targetUserPattern, diff --git a/packages/backend/src/server/api/endpoints/admin/emoji/adds.ts b/packages/backend/src/server/api/endpoints/admin/emoji/adds.ts index ef2fd3db0d..90c39c5001 100644 --- a/packages/backend/src/server/api/endpoints/admin/emoji/adds.ts +++ b/packages/backend/src/server/api/endpoints/admin/emoji/adds.ts @@ -82,10 +82,6 @@ export default class extends Endpoint { // eslint- roleIdsThatCanBeUsedThisEmojiAsReaction: ps.roleIdsThatCanBeUsedThisEmojiAsReaction ?? [], }); - this.moderationLogService.insertModerationLog(me, 'addEmoji', { - emojiId: emoji.id, - }); - return this.emojiEntityService.packDetailed(emoji); }); } diff --git a/packages/backend/src/server/api/endpoints/users/groups/create.ts b/packages/backend/src/server/api/endpoints/users/groups/create.ts index 0c46eb9279..0bcc4bf7be 100644 --- a/packages/backend/src/server/api/endpoints/users/groups/create.ts +++ b/packages/backend/src/server/api/endpoints/users/groups/create.ts @@ -56,16 +56,14 @@ export default class extends Endpoint { // eslint- ) { super(meta, paramDef, async (ps, me) => { const userGroup = await this.userGroupsRepository.insert({ - id: this.idService.genId(), - createdAt: new Date(), + id: this.idService.gen(), userId: me.id, name: ps.name, } as MiUserGroup).then(x => this.userGroupsRepository.findOneByOrFail(x.identifiers[0])); // Push the owner await this.userGroupJoiningsRepository.insert({ - id: this.idService.genId(), - createdAt: new Date(), + id: this.idService.gen(), userId: me.id, userGroupId: userGroup.id, } as MiUserGroupJoining); diff --git a/packages/backend/src/server/api/endpoints/users/groups/invitations/accept.ts b/packages/backend/src/server/api/endpoints/users/groups/invitations/accept.ts index 0af8e87725..e790d000bc 100644 --- a/packages/backend/src/server/api/endpoints/users/groups/invitations/accept.ts +++ b/packages/backend/src/server/api/endpoints/users/groups/invitations/accept.ts @@ -62,8 +62,7 @@ export default class extends Endpoint { // eslint- // Push the user await this.userGroupJoiningsRepository.insert({ - id: this.idService.genId(), - createdAt: new Date(), + id: this.idService.gen(), userId: me.id, userGroupId: invitation.userGroupId, } as MiUserGroupJoining); diff --git a/packages/backend/src/server/api/endpoints/users/groups/invite.ts b/packages/backend/src/server/api/endpoints/users/groups/invite.ts index 263227e91d..aa5488e271 100644 --- a/packages/backend/src/server/api/endpoints/users/groups/invite.ts +++ b/packages/backend/src/server/api/endpoints/users/groups/invite.ts @@ -110,17 +110,15 @@ export default class extends Endpoint { // eslint- } const invitation = await this.userGroupInvitationsRepository.insert({ - id: this.idService.genId(), - createdAt: new Date(), + id: this.idService.gen(), userId: user.id, userGroupId: userGroup.id, } as MiUserGroupInvitation).then(x => this.userGroupInvitationsRepository.findOneByOrFail(x.identifiers[0])); // 通知を作成 this.notificationService.createNotification(user.id, 'groupInvited', { - notifierId: me.id, userGroupInvitationId: invitation.id, - }); + }, me.id); }); } }