From 605f1492350c6f90108018d895e47fbc37197c4a Mon Sep 17 00:00:00 2001 From: Ebise Lutica <7106976+EbiseLutica@users.noreply.github.com> Date: Thu, 13 Apr 2023 13:17:32 +0900 Subject: feat: 自分用メモ機能 (#10516) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 自分用メモを作成する機能 * 不要なCSSを削除 * メモ: デザイン調整 * デザイン崩れを修正 * fix: メモ機能のe2eテストで見つかった不具合を修正 * デザイン調整 * fix(frontend): 自分用メモtextareaにline-heightが適用されない問題を修正 --- packages/backend/src/models/RepositoryModule.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'packages/backend/src/models/RepositoryModule.ts') diff --git a/packages/backend/src/models/RepositoryModule.ts b/packages/backend/src/models/RepositoryModule.ts index 7be7b81904..a415e37904 100644 --- a/packages/backend/src/models/RepositoryModule.ts +++ b/packages/backend/src/models/RepositoryModule.ts @@ -1,6 +1,6 @@ import { Module } from '@nestjs/common'; import { DI } from '@/di-symbols.js'; -import { User, Note, Announcement, AnnouncementRead, App, NoteFavorite, NoteThreadMuting, NoteReaction, NoteUnread, Poll, PollVote, UserProfile, UserKeypair, UserPending, AttestationChallenge, UserSecurityKey, UserPublickey, UserList, UserListJoining, UserNotePining, UserIp, UsedUsername, Following, FollowRequest, Instance, Emoji, DriveFile, DriveFolder, Meta, Muting, RenoteMuting, Blocking, SwSubscription, Hashtag, AbuseUserReport, RegistrationTicket, AuthSession, AccessToken, Signin, Page, PageLike, GalleryPost, GalleryLike, ModerationLog, Clip, ClipNote, Antenna, PromoNote, PromoRead, Relay, MutedNote, Channel, ChannelFollowing, ChannelFavorite, RegistryItem, Webhook, Ad, PasswordResetRequest, RetentionAggregation, FlashLike, Flash, Role, RoleAssignment, ClipFavorite } from './index.js'; +import { User, Note, Announcement, AnnouncementRead, App, NoteFavorite, NoteThreadMuting, NoteReaction, NoteUnread, Poll, PollVote, UserProfile, UserKeypair, UserPending, AttestationChallenge, UserSecurityKey, UserPublickey, UserList, UserListJoining, UserNotePining, UserIp, UsedUsername, Following, FollowRequest, Instance, Emoji, DriveFile, DriveFolder, Meta, Muting, RenoteMuting, Blocking, SwSubscription, Hashtag, AbuseUserReport, RegistrationTicket, AuthSession, AccessToken, Signin, Page, PageLike, GalleryPost, GalleryLike, ModerationLog, Clip, ClipNote, Antenna, PromoNote, PromoRead, Relay, MutedNote, Channel, ChannelFollowing, ChannelFavorite, RegistryItem, Webhook, Ad, PasswordResetRequest, RetentionAggregation, FlashLike, Flash, Role, RoleAssignment, ClipFavorite, UserMemo } from './index.js'; import type { DataSource } from 'typeorm'; import type { Provider } from '@nestjs/common'; @@ -388,6 +388,12 @@ const $roleAssignmentsRepository: Provider = { inject: [DI.db], }; +const $userMemoRepository: Provider = { + provide: DI.userMemoRepository, + useFactory: (db: DataSource) => db.getRepository(UserMemo), + inject: [DI.db], +}; + @Module({ imports: [ ], @@ -456,6 +462,7 @@ const $roleAssignmentsRepository: Provider = { $roleAssignmentsRepository, $flashsRepository, $flashLikesRepository, + $userMemoRepository, ], exports: [ $usersRepository, @@ -522,6 +529,7 @@ const $roleAssignmentsRepository: Provider = { $roleAssignmentsRepository, $flashsRepository, $flashLikesRepository, + $userMemoRepository, ], }) export class RepositoryModule {} -- cgit v1.2.3-freya From 97abfd48ceaebaa0f8e5ee60fcc0a656a3eb13c7 Mon Sep 17 00:00:00 2001 From: syuilo Date: Thu, 13 Apr 2023 13:31:54 +0900 Subject: refactor(backend): tweak repository name --- packages/backend/src/core/entities/UserEntityService.ts | 6 +++--- packages/backend/src/di-symbols.ts | 2 +- packages/backend/src/models/RepositoryModule.ts | 8 ++++---- .../backend/src/server/api/endpoints/users/update-memo.ts | 12 ++++++------ 4 files changed, 14 insertions(+), 14 deletions(-) (limited to 'packages/backend/src/models/RepositoryModule.ts') diff --git a/packages/backend/src/core/entities/UserEntityService.ts b/packages/backend/src/core/entities/UserEntityService.ts index 3f8254bb6c..68d30fe174 100644 --- a/packages/backend/src/core/entities/UserEntityService.ts +++ b/packages/backend/src/core/entities/UserEntityService.ts @@ -114,8 +114,8 @@ export class UserEntityService implements OnModuleInit { @Inject(DI.pagesRepository) private pagesRepository: PagesRepository, - @Inject(DI.userMemoRepository) - private userMemoRepository: UserMemoRepository, + @Inject(DI.userMemosRepository) + private userMemosRepository: UserMemoRepository, //private noteEntityService: NoteEntityService, //private driveFileEntityService: DriveFileEntityService, @@ -340,7 +340,7 @@ export class UserEntityService implements OnModuleInit { const falsy = opts.detail ? false : undefined; - const memo = meId == null ? null : await this.userMemoRepository.findOneBy({ + const memo = meId == null ? null : await this.userMemosRepository.findOneBy({ userId: meId, targetUserId: user.id, }).then(row => row?.memo ?? null); diff --git a/packages/backend/src/di-symbols.ts b/packages/backend/src/di-symbols.ts index b93ba899fb..190d8d65c2 100644 --- a/packages/backend/src/di-symbols.ts +++ b/packages/backend/src/di-symbols.ts @@ -70,6 +70,6 @@ export const DI = { roleAssignmentsRepository: Symbol('roleAssignmentsRepository'), flashsRepository: Symbol('flashsRepository'), flashLikesRepository: Symbol('flashLikesRepository'), - userMemoRepository: Symbol('userMemoRepository'), + userMemosRepository: Symbol('userMemosRepository'), //#endregion }; diff --git a/packages/backend/src/models/RepositoryModule.ts b/packages/backend/src/models/RepositoryModule.ts index a415e37904..588c98b58d 100644 --- a/packages/backend/src/models/RepositoryModule.ts +++ b/packages/backend/src/models/RepositoryModule.ts @@ -388,8 +388,8 @@ const $roleAssignmentsRepository: Provider = { inject: [DI.db], }; -const $userMemoRepository: Provider = { - provide: DI.userMemoRepository, +const $userMemosRepository: Provider = { + provide: DI.userMemosRepository, useFactory: (db: DataSource) => db.getRepository(UserMemo), inject: [DI.db], }; @@ -462,7 +462,7 @@ const $userMemoRepository: Provider = { $roleAssignmentsRepository, $flashsRepository, $flashLikesRepository, - $userMemoRepository, + $userMemosRepository, ], exports: [ $usersRepository, @@ -529,7 +529,7 @@ const $userMemoRepository: Provider = { $roleAssignmentsRepository, $flashsRepository, $flashLikesRepository, - $userMemoRepository, + $userMemosRepository, ], }) export class RepositoryModule {} diff --git a/packages/backend/src/server/api/endpoints/users/update-memo.ts b/packages/backend/src/server/api/endpoints/users/update-memo.ts index 300435b9ff..ca7756ef75 100644 --- a/packages/backend/src/server/api/endpoints/users/update-memo.ts +++ b/packages/backend/src/server/api/endpoints/users/update-memo.ts @@ -39,8 +39,8 @@ export const paramDef = { @Injectable() export default class extends Endpoint { constructor( - @Inject(DI.userMemoRepository) - private userMemoRepository: UserMemoRepository, + @Inject(DI.userMemosRepository) + private userMemosRepository: UserMemoRepository, private getterService: GetterService, private idService: IdService, ) { @@ -53,7 +53,7 @@ export default class extends Endpoint { // 引数がnullか空文字であれば、パーソナルメモを削除する if (ps.memo === '' || ps.memo == null) { - await this.userMemoRepository.delete({ + await this.userMemosRepository.delete({ userId: me.id, targetUserId: target.id, }); @@ -61,20 +61,20 @@ export default class extends Endpoint { } // 以前に作成されたパーソナルメモがあるかどうか確認 - const previousMemo = await this.userMemoRepository.findOneBy({ + const previousMemo = await this.userMemosRepository.findOneBy({ userId: me.id, targetUserId: target.id, }); if (!previousMemo) { - await this.userMemoRepository.insert({ + await this.userMemosRepository.insert({ id: this.idService.genId(), userId: me.id, targetUserId: target.id, memo: ps.memo, }); } else { - await this.userMemoRepository.update(previousMemo.id, { + await this.userMemosRepository.update(previousMemo.id, { userId: me.id, targetUserId: target.id, memo: ps.memo, -- cgit v1.2.3-freya