about summary refs log tree commit diff
path: root/db/migrate
diff options
context:
space:
mode:
authorEugen Rochko <eugen@zeonfederated.com>2017-11-18 00:16:48 +0100
committerGitHub <noreply@github.com>2017-11-18 00:16:48 +0100
commit24cafd73a2b644025e9aeaadf4fed46dd3ecea4d (patch)
treee0a0ad775612644d29193e81a9326f0e4c21d6af /db/migrate
parent4a2fc2d444a80050ad9ba5e83aa5e69d3148ab95 (diff)
Lists (#5703)
* Add structure for lists

* Add list timeline streaming API

* Add list APIs, bind list-account relation to follow relation

* Add API for adding/removing accounts from lists

* Add pagination to lists API

* Add pagination to list accounts API

* Adjust scopes for new APIs

- Creating and modifying lists merely requires "write" scope
- Fetching information about lists merely requires "read" scope

* Add test for wrong user context on list timeline

* Clean up tests
Diffstat (limited to 'db/migrate')
-rw-r--r--db/migrate/20171114231651_create_lists.rb10
-rw-r--r--db/migrate/20171116161857_create_list_accounts.rb12
2 files changed, 22 insertions, 0 deletions
diff --git a/db/migrate/20171114231651_create_lists.rb b/db/migrate/20171114231651_create_lists.rb
new file mode 100644
index 000000000..21285e901
--- /dev/null
+++ b/db/migrate/20171114231651_create_lists.rb
@@ -0,0 +1,10 @@
+class CreateLists < ActiveRecord::Migration[5.1]
+  def change
+    create_table :lists do |t|
+      t.references :account, foreign_key: { on_delete: :cascade }
+      t.string :title, null: false, default: ''
+
+      t.timestamps
+    end
+  end
+end
diff --git a/db/migrate/20171116161857_create_list_accounts.rb b/db/migrate/20171116161857_create_list_accounts.rb
new file mode 100644
index 000000000..b76c90651
--- /dev/null
+++ b/db/migrate/20171116161857_create_list_accounts.rb
@@ -0,0 +1,12 @@
+class CreateListAccounts < ActiveRecord::Migration[5.1]
+  def change
+    create_table :list_accounts do |t|
+      t.belongs_to :list, foreign_key: { on_delete: :cascade }, null: false
+      t.belongs_to :account, foreign_key: { on_delete: :cascade }, null: false
+      t.belongs_to :follow, foreign_key: { on_delete: :cascade }, null: false
+    end
+
+    add_index :list_accounts, [:account_id, :list_id], unique: true
+    add_index :list_accounts, [:list_id, :account_id]
+  end
+end