#148 feat: 投稿とタグのリレーション・テーブルについて論理削除と履歴を追加(#84)

Merged
みてるぞ merged 5 commits from feature/084 into main 21 hours ago

主要変更点

  • post_tags テーブルに対して論理削除コラム追加
  • 投稿更新時に外されたタグの関聯を論理削除するロジックに変更
  • 投稿追加、更新時に追加されたタグの関聯に操作者情報を登録するロジックに変更
  • ニコニコ同期時に外されたタグの関聯を論理削除するロジックに変更

テスト観点

テスト補足

ニコニコ同期のテストは,以下の形式の JSON を返す Python プログラムをもって API とみなし実施するとよい:

{ "id": number
, "code": string
, "title": string
, "description": string
, "tags": string[]
, "uploaded_at": string
, "deleted_at": null
}[]
### 主要変更点 - `post_tags` テーブルに対して論理削除コラム追加 - 投稿更新時に外されたタグの関聯を論理削除するロジックに変更 - 投稿追加、更新時に追加されたタグの関聯に操作者情報を登録するロジックに変更 - ニコニコ同期時に外されたタグの関聯を論理削除するロジックに変更 ### テスト観点 - [x] 投稿追加時に `post_tags.created_user_id` に操作者が登録されること - [x] タグ編輯時に追加したタグの `post_tags.created_user_id` に操作者が登録されること - [x] タグ編輯時に削除したタグの `post_tags.discarded_at` に削除日時が登録されること - [x] タグ編輯時に削除したタグの `post_tags.deleted_user_id` に操作者が登録されること - [x] タグ編輯時に削除したことのあるタグを追加し,過去の削除レコードとは別に `post_tags` レコードが生えること - [x] タグ編輯時に削除したことのあるタグを追加し,直後にそのタグを削除した際に同じ参照の `post_tags` レコードが 2 本生えること - [x] ニコニコ同期時の新規動画に追加された nico タグの操作者が NULL であること - [x] ニコニコ同期時の新規動画に追加された nico タグの連携タグの操作者が NULL であること - [x] ニコニコ同期時の更新動画に追加された nico タグの操作者が NULL であること - [x] ニコニコ同期時の更新動画に追加された nico タグの連携タグの操作者が NULL であること - [x] ニコニコ同期時の更新動画に削除された nico タグの操作者が NULL であること - [x] ニコニコ同期時の更新動画に削除された nico タグに削除日時が記録されること - [x] 投稿追加時に親タグの `post_tags.created_user_id` に操作者が登録されること - [x] タグ編輯時に追加したタグの親の `post_tags.created_user_id` に操作者が登録されること #### テスト補足 ニコニコ同期のテストは,以下の形式の JSON を返す Python プログラムをもって API とみなし実施するとよい: ``` { "id": number , "code": string , "title": string , "description": string , "tags": string[] , "uploaded_at": string , "deleted_at": null }[]
みてるぞ self-assigned this 2 months ago
みてるぞ changed title from feat: 投稿とタグのリレーション・テーブルについて論理削除と履歴を追加(q) to feat: 投稿とタグのリレーション・テーブルについて論理削除と履歴を追加(#84) 2 months ago
みてるぞ reviewed 3 days ago
backend/app/models/tag.rb
@@ -2,2 +2,2 @@
has_many :post_tags, dependent: :destroy
has_many :posts, through: :post_tags
has_many :post_tags, dependent: :delete_all, inverse_of: :tag
has_many :active_post_tags, -> { kept }, class_name: 'PostTag', :inverse_of: :tag
みてるぞ commented 3 days ago

:inverse_of: :tag が文法エラー.

`:inverse_of: :tag` が文法エラー.
miteruzo marked this conversation as resolved
miteruzo changed target branch from test to main 3 days ago
みてるぞ reviewed 2 days ago
@@ -0,0 +1,18 @@
class AddDiscardToPostTags < ActiveRecord::Migration[8.0]
def change
みてるぞ commented 2 days ago

change ではなく up にしたい.
down は設けず,不可逆な作りにしたはぅが安心.

`change` ではなく `up` にしたい. `down` は設けず,不可逆な作りにしたはぅが安心.
miteruzo marked this conversation as resolved
みてるぞ merged commit 9a656a9e6e into main 21 hours ago
The pull request has been merged as 9a656a9e6e.
Sign in to join this conversation.
No reviewers
No Milestone
No Assignees
1 Participants
Notifications
Due Date

No due date set.

Dependencies

This pull request currently doesn't have any dependencies.

Loading…
There is no content yet.