From 085e402c4dbf49b62775ba9c06ba08e5ea15991d Mon Sep 17 00:00:00 2001 From: Beatrice Olivera Date: Wed, 29 Aug 2018 13:44:10 +0100 Subject: [PATCH] created models for chatroom --- app/models/chat_room.rb | 5 ++++ app/models/chat_room_participation.rb | 4 +++ app/models/request.rb | 4 +++ app/models/user.rb | 3 ++ .../20180829122818_create_chat_rooms.rb | 8 +++++ ...9122930_create_chat_room_participations.rb | 10 +++++++ db/migrate/20180829123049_create_requests.rb | 11 +++++++ ...0180829123204_change_column_in_requests.rb | 5 ++++ db/schema.rb | 30 ++++++++++++++++++- test/models/chat_room_participation_test.rb | 7 +++++ test/models/chat_room_test.rb | 7 +++++ test/models/request_test.rb | 7 +++++ 12 files changed, 100 insertions(+), 1 deletion(-) create mode 100644 app/models/chat_room.rb create mode 100644 app/models/chat_room_participation.rb create mode 100644 app/models/request.rb create mode 100644 db/migrate/20180829122818_create_chat_rooms.rb create mode 100644 db/migrate/20180829122930_create_chat_room_participations.rb create mode 100644 db/migrate/20180829123049_create_requests.rb create mode 100644 db/migrate/20180829123204_change_column_in_requests.rb create mode 100644 test/models/chat_room_participation_test.rb create mode 100644 test/models/chat_room_test.rb create mode 100644 test/models/request_test.rb diff --git a/app/models/chat_room.rb b/app/models/chat_room.rb new file mode 100644 index 0000000..078aced --- /dev/null +++ b/app/models/chat_room.rb @@ -0,0 +1,5 @@ +class ChatRoom < ApplicationRecord + has_many :users, through: :chat_room_participations + has_many :chat_room_participations + has_many :requests +end diff --git a/app/models/chat_room_participation.rb b/app/models/chat_room_participation.rb new file mode 100644 index 0000000..86931ec --- /dev/null +++ b/app/models/chat_room_participation.rb @@ -0,0 +1,4 @@ +class ChatRoomParticipation < ApplicationRecord + belongs_to :user + belongs_to :chat_room +end diff --git a/app/models/request.rb b/app/models/request.rb new file mode 100644 index 0000000..2857ced --- /dev/null +++ b/app/models/request.rb @@ -0,0 +1,4 @@ +class Request < ApplicationRecord + belongs_to :user + belongs_to :chat_room +end diff --git a/app/models/user.rb b/app/models/user.rb index dfa148e..a084ec6 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -5,6 +5,9 @@ class User < ApplicationRecord :recoverable, :rememberable, :validatable has_many :connections + has_many :chat_rooms, through: :chat_room_participations + has_many :chat_room_participations + has_many :requests def contacts self.connections.map do |connection| diff --git a/db/migrate/20180829122818_create_chat_rooms.rb b/db/migrate/20180829122818_create_chat_rooms.rb new file mode 100644 index 0000000..a142563 --- /dev/null +++ b/db/migrate/20180829122818_create_chat_rooms.rb @@ -0,0 +1,8 @@ +class CreateChatRooms < ActiveRecord::Migration[5.2] + def change + create_table :chat_rooms do |t| + + t.timestamps + end + end +end diff --git a/db/migrate/20180829122930_create_chat_room_participations.rb b/db/migrate/20180829122930_create_chat_room_participations.rb new file mode 100644 index 0000000..34739cc --- /dev/null +++ b/db/migrate/20180829122930_create_chat_room_participations.rb @@ -0,0 +1,10 @@ +class CreateChatRoomParticipations < ActiveRecord::Migration[5.2] + def change + create_table :chat_room_participations do |t| + t.references :user, foreign_key: true + t.references :chat_room, foreign_key: true + + t.timestamps + end + end +end diff --git a/db/migrate/20180829123049_create_requests.rb b/db/migrate/20180829123049_create_requests.rb new file mode 100644 index 0000000..2417469 --- /dev/null +++ b/db/migrate/20180829123049_create_requests.rb @@ -0,0 +1,11 @@ +class CreateRequests < ActiveRecord::Migration[5.2] + def change + create_table :requests do |t| + t.references :user, foreign_key: true + t.references :chat_room, foreign_key: true + t.boolean :accepted + + t.timestamps + end + end +end diff --git a/db/migrate/20180829123204_change_column_in_requests.rb b/db/migrate/20180829123204_change_column_in_requests.rb new file mode 100644 index 0000000..87166c7 --- /dev/null +++ b/db/migrate/20180829123204_change_column_in_requests.rb @@ -0,0 +1,5 @@ +class ChangeColumnInRequests < ActiveRecord::Migration[5.2] + def change + change_column :requests, :accepted, :boolean, default: false + end +end diff --git a/db/schema.rb b/db/schema.rb index cc819c1..e915a1a 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,11 +10,25 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 2018_08_27_151325) do +ActiveRecord::Schema.define(version: 2018_08_29_123204) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" + create_table "chat_room_participations", force: :cascade do |t| + t.bigint "user_id" + t.bigint "chat_room_id" + t.datetime "created_at", null: false + t.datetime "updated_at", null: false + t.index ["chat_room_id"], name: "index_chat_room_participations_on_chat_room_id" + t.index ["user_id"], name: "index_chat_room_participations_on_user_id" + end + + create_table "chat_rooms", force: :cascade do |t| + t.datetime "created_at", null: false + t.datetime "updated_at", null: false + end + create_table "connections", force: :cascade do |t| t.bigint "user_id" t.bigint "contact_id" @@ -22,6 +36,16 @@ ActiveRecord::Schema.define(version: 2018_08_27_151325) do t.index ["user_id"], name: "index_connections_on_user_id" end + create_table "requests", force: :cascade do |t| + t.bigint "user_id" + t.bigint "chat_room_id" + t.boolean "accepted", default: false + t.datetime "created_at", null: false + t.datetime "updated_at", null: false + t.index ["chat_room_id"], name: "index_requests_on_chat_room_id" + t.index ["user_id"], name: "index_requests_on_user_id" + end + create_table "users", force: :cascade do |t| t.string "email", default: "", null: false t.string "encrypted_password", default: "", null: false @@ -34,6 +58,10 @@ ActiveRecord::Schema.define(version: 2018_08_27_151325) do t.index ["reset_password_token"], name: "index_users_on_reset_password_token", unique: true end + add_foreign_key "chat_room_participations", "chat_rooms" + add_foreign_key "chat_room_participations", "users" add_foreign_key "connections", "users" add_foreign_key "connections", "users", column: "contact_id" + add_foreign_key "requests", "chat_rooms" + add_foreign_key "requests", "users" end diff --git a/test/models/chat_room_participation_test.rb b/test/models/chat_room_participation_test.rb new file mode 100644 index 0000000..fd70bc7 --- /dev/null +++ b/test/models/chat_room_participation_test.rb @@ -0,0 +1,7 @@ +require 'test_helper' + +class ChatRoomParticipationTest < ActiveSupport::TestCase + # test "the truth" do + # assert true + # end +end diff --git a/test/models/chat_room_test.rb b/test/models/chat_room_test.rb new file mode 100644 index 0000000..c621386 --- /dev/null +++ b/test/models/chat_room_test.rb @@ -0,0 +1,7 @@ +require 'test_helper' + +class ChatRoomTest < ActiveSupport::TestCase + # test "the truth" do + # assert true + # end +end diff --git a/test/models/request_test.rb b/test/models/request_test.rb new file mode 100644 index 0000000..f9f95ba --- /dev/null +++ b/test/models/request_test.rb @@ -0,0 +1,7 @@ +require 'test_helper' + +class RequestTest < ActiveSupport::TestCase + # test "the truth" do + # assert true + # end +end