diff --git a/app/models/connection.rb b/app/models/connection.rb index 0028286..521a5f7 100644 --- a/app/models/connection.rb +++ b/app/models/connection.rb @@ -2,13 +2,21 @@ class Connection < ApplicationRecord belongs_to :user belongs_to :contact, class_name: 'User', foreign_key: 'contact_id' + after_create :set_room_id after_create :create_inverted_connection private + def set_room_id + self.room_id = "#{self.user.email}+#{self.contact.email}" + self.save! + end + def create_inverted_connection unless Connection.where('user_id = ? and contact_id = ?', self.contact.id, self.user.id).length > 0 - Connection.create!(user: self.contact, contact: self.user) + inverted = Connection.create!(user: self.contact, contact: self.user) + inverted.room_id = "#{self.user.email}+#{self.contact.email}" + inverted.save! end end end diff --git a/db/migrate/20180829102007_add_column_to_connections.rb b/db/migrate/20180829102007_add_column_to_connections.rb new file mode 100644 index 0000000..080b162 --- /dev/null +++ b/db/migrate/20180829102007_add_column_to_connections.rb @@ -0,0 +1,5 @@ +class AddColumnToConnections < ActiveRecord::Migration[5.2] + def change + add_column :connections, :room_id, :string + end +end diff --git a/db/schema.rb b/db/schema.rb index cc819c1..9b9880d 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # 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_102007) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -18,6 +18,7 @@ ActiveRecord::Schema.define(version: 2018_08_27_151325) do create_table "connections", force: :cascade do |t| t.bigint "user_id" t.bigint "contact_id" + t.string "room_id" t.index ["contact_id"], name: "index_connections_on_contact_id" t.index ["user_id"], name: "index_connections_on_user_id" end