summaryrefslogtreecommitdiff
path: root/packages/backend/src/core
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2023-09-24 10:46:09 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2023-09-24 10:46:09 +0900
commited983a5baf581b28b063edfa25e0d80349e9318e (patch)
tree4d78cc23cfac3ef19a5893711fccc0811a3b2589 /packages/backend/src/core
parentimprove moderation log (diff)
downloadmisskey-ed983a5baf581b28b063edfa25e0d80349e9318e.tar.gz
misskey-ed983a5baf581b28b063edfa25e0d80349e9318e.tar.bz2
misskey-ed983a5baf581b28b063edfa25e0d80349e9318e.zip
improve moderation log
Diffstat (limited to 'packages/backend/src/core')
-rw-r--r--packages/backend/src/core/AnnouncementService.ts77
1 files changed, 67 insertions, 10 deletions
diff --git a/packages/backend/src/core/AnnouncementService.ts b/packages/backend/src/core/AnnouncementService.ts
index 31fcb139ea..2b4877788a 100644
--- a/packages/backend/src/core/AnnouncementService.ts
+++ b/packages/backend/src/core/AnnouncementService.ts
@@ -60,7 +60,7 @@ export class AnnouncementService {
}
@bindThis
- public async create(values: Partial<MiAnnouncement>, moderator: MiUser): Promise<{ raw: MiAnnouncement; packed: Packed<'Announcement'> }> {
+ public async create(values: Partial<MiAnnouncement>, moderator?: MiUser): Promise<{ raw: MiAnnouncement; packed: Packed<'Announcement'> }> {
const announcement = await this.announcementsRepository.insert({
id: this.idService.genId(),
createdAt: new Date(),
@@ -82,20 +82,24 @@ export class AnnouncementService {
announcement: packed,
});
- this.moderationLogService.log(moderator, 'createUserAnnouncement', {
- announcementId: announcement.id,
- announcement: announcement,
- userId: values.userId,
- });
+ if (moderator) {
+ this.moderationLogService.log(moderator, 'createUserAnnouncement', {
+ announcementId: announcement.id,
+ announcement: announcement,
+ userId: values.userId,
+ });
+ }
} else {
this.globalEventService.publishBroadcastStream('announcementCreated', {
announcement: packed,
});
- this.moderationLogService.log(moderator, 'createGlobalAnnouncement', {
- announcementId: announcement.id,
- announcement: announcement,
- });
+ if (moderator) {
+ this.moderationLogService.log(moderator, 'createGlobalAnnouncement', {
+ announcementId: announcement.id,
+ announcement: announcement,
+ });
+ }
}
return {
@@ -105,6 +109,59 @@ export class AnnouncementService {
}
@bindThis
+ public async update(announcement: MiAnnouncement, values: Partial<MiAnnouncement>, moderator?: MiUser): Promise<void> {
+ await this.announcementsRepository.update(announcement.id, {
+ updatedAt: new Date(),
+ title: values.title,
+ text: values.text,
+ /* eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing -- 空の文字列の場合、nullを渡すようにするため */
+ imageUrl: values.imageUrl || null,
+ display: values.display,
+ icon: values.icon,
+ forExistingUsers: values.forExistingUsers,
+ needConfirmationToRead: values.needConfirmationToRead,
+ isActive: values.isActive,
+ });
+
+ const after = await this.announcementsRepository.findOneByOrFail({ id: announcement.id });
+
+ if (moderator) {
+ if (announcement.userId) {
+ this.moderationLogService.log(moderator, 'updateUserAnnouncement', {
+ announcementId: announcement.id,
+ before: announcement,
+ after: after,
+ });
+ } else {
+ this.moderationLogService.log(moderator, 'updateGlobalAnnouncement', {
+ announcementId: announcement.id,
+ before: announcement,
+ after: after,
+ });
+ }
+ }
+ }
+
+ @bindThis
+ public async delete(announcement: MiAnnouncement, moderator?: MiUser): Promise<void> {
+ await this.announcementsRepository.delete(announcement.id);
+
+ if (moderator) {
+ if (announcement.userId) {
+ this.moderationLogService.log(moderator, 'deleteUserAnnouncement', {
+ announcementId: announcement.id,
+ announcement: announcement,
+ });
+ } else {
+ this.moderationLogService.log(moderator, 'deleteGlobalAnnouncement', {
+ announcementId: announcement.id,
+ announcement: announcement,
+ });
+ }
+ }
+ }
+
+ @bindThis
public async read(user: MiUser, announcementId: MiAnnouncement['id']): Promise<void> {
try {
await this.announcementReadsRepository.insert({