created models for chatroom

This commit is contained in:
Beatrice Olivera 2018-08-29 13:44:10 +01:00
parent 82079d71cd
commit 085e402c4d
12 changed files with 100 additions and 1 deletions

5
app/models/chat_room.rb Normal file
View File

@ -0,0 +1,5 @@
class ChatRoom < ApplicationRecord
has_many :users, through: :chat_room_participations
has_many :chat_room_participations
has_many :requests
end

View File

@ -0,0 +1,4 @@
class ChatRoomParticipation < ApplicationRecord
belongs_to :user
belongs_to :chat_room
end

4
app/models/request.rb Normal file
View File

@ -0,0 +1,4 @@
class Request < ApplicationRecord
belongs_to :user
belongs_to :chat_room
end

View File

@ -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|

View File

@ -0,0 +1,8 @@
class CreateChatRooms < ActiveRecord::Migration[5.2]
def change
create_table :chat_rooms do |t|
t.timestamps
end
end
end

View File

@ -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

View File

@ -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

View File

@ -0,0 +1,5 @@
class ChangeColumnInRequests < ActiveRecord::Migration[5.2]
def change
change_column :requests, :accepted, :boolean, default: false
end
end

View File

@ -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

View File

@ -0,0 +1,7 @@
require 'test_helper'
class ChatRoomParticipationTest < ActiveSupport::TestCase
# test "the truth" do
# assert true
# end
end

View File

@ -0,0 +1,7 @@
require 'test_helper'
class ChatRoomTest < ActiveSupport::TestCase
# test "the truth" do
# assert true
# end
end

View File

@ -0,0 +1,7 @@
require 'test_helper'
class RequestTest < ActiveSupport::TestCase
# test "the truth" do
# assert true
# end
end