diff options
| author | syuilo <Syuilotan@yahoo.co.jp> | 2023-08-13 20:12:29 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-08-13 20:12:29 +0900 |
| commit | 948785649540e08c1610b1dcce6b37e99b5e8039 (patch) | |
| tree | f5e57a0ecca79c8fb244b4c6af53be8e4b7a53fd /packages/backend/src/server/api/endpoints/i | |
| parent | fix(frontend/MkUrlPreview): allow fullscreen from tweets (#11712) (diff) | |
| download | misskey-948785649540e08c1610b1dcce6b37e99b5e8039.tar.gz misskey-948785649540e08c1610b1dcce6b37e99b5e8039.tar.bz2 misskey-948785649540e08c1610b1dcce6b37e99b5e8039.zip | |
feat: refine announcement (#11497)
* wip
* Update read-announcement.ts
* wip
* wip
* wip
* Update index.d.ts
* wip
* Create 1691649257651-refine-announcement.js
* wip
* wip
* wip
* wip
* wip
* wip
* Update announcements.vue
* wip
* wip
* Update announcements.vue
* wip
* Update announcements.vue
* wip
* Update misskey-js.api.md
* Update users.ts
* Create MkAnnouncementDialog.stories.impl.ts
* wip
* wip
* Create AnnouncementService.ts
Diffstat (limited to 'packages/backend/src/server/api/endpoints/i')
| -rw-r--r-- | packages/backend/src/server/api/endpoints/i/read-announcement.ts | 55 |
1 files changed, 4 insertions, 51 deletions
diff --git a/packages/backend/src/server/api/endpoints/i/read-announcement.ts b/packages/backend/src/server/api/endpoints/i/read-announcement.ts index 7bda6e2627..412532939c 100644 --- a/packages/backend/src/server/api/endpoints/i/read-announcement.ts +++ b/packages/backend/src/server/api/endpoints/i/read-announcement.ts @@ -3,14 +3,9 @@ * SPDX-License-Identifier: AGPL-3.0-only */ -import { Inject, Injectable } from '@nestjs/common'; +import { Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; -import { IdService } from '@/core/IdService.js'; -import type { AnnouncementReadsRepository, AnnouncementsRepository } from '@/models/index.js'; -import { GlobalEventService } from '@/core/GlobalEventService.js'; -import { UserEntityService } from '@/core/entities/UserEntityService.js'; -import { DI } from '@/di-symbols.js'; -import { ApiError } from '../../error.js'; +import { AnnouncementService } from '@/core/AnnouncementService.js'; export const meta = { tags: ['account'], @@ -20,11 +15,6 @@ export const meta = { kind: 'write:account', errors: { - noSuchAnnouncement: { - message: 'No such announcement.', - code: 'NO_SUCH_ANNOUNCEMENT', - id: '184663db-df88-4bc2-8b52-fb85f0681939', - }, }, } as const; @@ -40,47 +30,10 @@ export const paramDef = { @Injectable() export default class extends Endpoint<typeof meta, typeof paramDef> { constructor( - @Inject(DI.announcementsRepository) - private announcementsRepository: AnnouncementsRepository, - - @Inject(DI.announcementReadsRepository) - private announcementReadsRepository: AnnouncementReadsRepository, - - private userEntityService: UserEntityService, - private idService: IdService, - private globalEventService: GlobalEventService, + private announcementService: AnnouncementService, ) { super(meta, paramDef, async (ps, me) => { - // Check if announcement exists - const announcementExist = await this.announcementsRepository.exist({ where: { id: ps.announcementId } }); - - if (!announcementExist) { - throw new ApiError(meta.errors.noSuchAnnouncement); - } - - // Check if already read - const alreadyRead = await this.announcementReadsRepository.exist({ - where: { - announcementId: ps.announcementId, - userId: me.id, - }, - }); - - if (alreadyRead) { - return; - } - - // Create read - await this.announcementReadsRepository.insert({ - id: this.idService.genId(), - createdAt: new Date(), - announcementId: ps.announcementId, - userId: me.id, - }); - - if (!await this.userEntityService.getHasUnreadAnnouncement(me.id)) { - this.globalEventService.publishMainStream(me.id, 'readAllAnnouncements'); - } + await this.announcementService.read(me, ps.announcementId); }); } } |