diff --git a/app/models/listing.rb b/app/models/listing.rb index 14f44305e..1d858d2ce 100644 --- a/app/models/listing.rb +++ b/app/models/listing.rb @@ -22,11 +22,6 @@ class Listing < ApplicationRecord after_commit :remove_from_elasticsearch, on: [:destroy] acts_as_taggable_on :tags has_many :credits, as: :purchase, inverse_of: :purchase, dependent: :nullify - has_many :endorsements, - foreign_key: :classified_listing_id, - dependent: :destroy, - inverse_of: :listing, - class_name: "ListingEndorsement" validates :user_id, presence: true validates :organization_id, presence: true, unless: :user_id? diff --git a/app/models/listing_endorsement.rb b/app/models/listing_endorsement.rb deleted file mode 100644 index b69c1d941..000000000 --- a/app/models/listing_endorsement.rb +++ /dev/null @@ -1,10 +0,0 @@ -class ListingEndorsement < ApplicationRecord - self.table_name = "classified_listing_endorsements" - - belongs_to :listing, foreign_key: :classified_listing_id, inverse_of: :endorsements - belongs_to :user - - validates :user_id, presence: true - validates :classified_listing_id, presence: true - validates :content, presence: true -end diff --git a/app/models/user.rb b/app/models/user.rb index 351dd1b55..7c296a31d 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -141,7 +141,6 @@ class User < ApplicationRecord has_many :display_ad_events, dependent: :destroy has_many :email_authorizations, dependent: :delete_all has_many :email_messages, class_name: "Ahoy::Message", dependent: :destroy - has_many :endorsements, dependent: :destroy, class_name: "ListingEndorsement" has_many :field_test_memberships, class_name: "FieldTest::Membership", as: :participant, dependent: :destroy has_many :github_repos, dependent: :destroy has_many :html_variants, dependent: :destroy diff --git a/db/migrate/20210105183127_drop_listing_endorsements_table.rb b/db/migrate/20210105183127_drop_listing_endorsements_table.rb new file mode 100644 index 000000000..78a3efa98 --- /dev/null +++ b/db/migrate/20210105183127_drop_listing_endorsements_table.rb @@ -0,0 +1,11 @@ +class DropListingEndorsementsTable < ActiveRecord::Migration[6.0] + def change + drop_table :classified_listing_endorsements do |t| + t.string :content + t.boolean :approved, default: false + t.references :classified_listing, foreign_key: true + t.references :user, foreign_key: true + t.timestamps + end + end +end diff --git a/db/schema.rb b/db/schema.rb index 40289d47c..eec392558 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: 2020_12_03_063435) do +ActiveRecord::Schema.define(version: 2021_01_05_183127) do # These are extensions that must be enabled in order to support this database enable_extension "citext" @@ -337,17 +337,6 @@ ActiveRecord::Schema.define(version: 2020_12_03_063435) do t.index ["slug"], name: "index_classified_listing_categories_on_slug", unique: true end - create_table "classified_listing_endorsements", force: :cascade do |t| - t.boolean "approved", default: false - t.bigint "classified_listing_id" - t.string "content" - t.datetime "created_at", precision: 6, null: false - t.datetime "updated_at", precision: 6, null: false - t.bigint "user_id" - t.index ["classified_listing_id"], name: "index_classified_listing_endorsements_on_classified_listing_id" - t.index ["user_id"], name: "index_classified_listing_endorsements_on_user_id" - end - create_table "classified_listings", force: :cascade do |t| t.text "body_markdown" t.datetime "bumped_at" @@ -1417,8 +1406,6 @@ ActiveRecord::Schema.define(version: 2020_12_03_063435) do add_foreign_key "buffer_updates", "users", column: "composer_user_id", on_delete: :nullify add_foreign_key "chat_channel_memberships", "chat_channels" add_foreign_key "chat_channel_memberships", "users" - add_foreign_key "classified_listing_endorsements", "classified_listings" - add_foreign_key "classified_listing_endorsements", "users" add_foreign_key "classified_listings", "classified_listing_categories" add_foreign_key "classified_listings", "organizations", on_delete: :cascade add_foreign_key "classified_listings", "users", on_delete: :cascade diff --git a/db/seeds.rb b/db/seeds.rb index 502c294c6..e2d52b3ef 100644 --- a/db/seeds.rb +++ b/db/seeds.rb @@ -556,15 +556,6 @@ seeder.create_if_none(Listing) do end end -seeder.create_if_none(ListingEndorsement) do - 5.times do - ListingEndorsement.create!( - content: Faker::Lorem.sentence, - user: User.order(Arel.sql("RANDOM()")).first, - listing: Listing.order(Arel.sql("RANDOM()")).first, - ) - end -end ############################################################################## seeder.create_if_none(Page) do diff --git a/spec/factories/listing_endorsements.rb b/spec/factories/listing_endorsements.rb deleted file mode 100644 index 2edf76f0c..000000000 --- a/spec/factories/listing_endorsements.rb +++ /dev/null @@ -1,8 +0,0 @@ -FactoryBot.define do - factory :listing_endorsement do - user - listing - content { "#{Faker::Lorem.sentence} " } - approved { true } - end -end diff --git a/spec/models/listing_endorsement_spec.rb b/spec/models/listing_endorsement_spec.rb deleted file mode 100644 index f94eb94d9..000000000 --- a/spec/models/listing_endorsement_spec.rb +++ /dev/null @@ -1,29 +0,0 @@ -require "rails_helper" - -RSpec.describe ListingEndorsement, type: :model do - let(:user) { create(:user) } - let(:listing) { create(:listing, user: user) } - let(:listing_endorsement) { create(:listing_endorsement, listing: listing, user: user) } - - it { is_expected.to validate_presence_of(:content) } - it { is_expected.to belong_to(:listing) } - it { is_expected.to belong_to(:user) } - - describe "valid associations" do - it "is not valid w/o user" do - cl = build(:listing_endorsement, user_id: nil) - expect(cl).not_to be_valid - expect(cl.errors[:user_id]).to be_truthy - end - - it "is not valid w/o listing" do - cl = build(:listing_endorsement, classified_listing_id: nil, user_id: user.id) - expect(cl).not_to be_valid - end - - it "is valid with listing and user" do - cl = build(:listing_endorsement, classified_listing_id: listing.id, user_id: user.id) - expect(cl).to be_valid - end - end -end diff --git a/spec/models/listing_spec.rb b/spec/models/listing_spec.rb index bf41cc8ed..98eeb193a 100644 --- a/spec/models/listing_spec.rb +++ b/spec/models/listing_spec.rb @@ -12,7 +12,6 @@ RSpec.describe Listing, type: :model do it { is_expected.to validate_presence_of(:title) } it { is_expected.to validate_presence_of(:body_markdown) } it { is_expected.to have_many(:credits) } - it { is_expected.to have_many(:endorsements) } describe "valid associations" do it "is not valid w/o user and org" do diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index 1344e0ce5..4d9f711b4 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -56,7 +56,6 @@ RSpec.describe User, type: :model do it { is_expected.to have_many(:display_ad_events).dependent(:destroy) } it { is_expected.to have_many(:email_authorizations).dependent(:delete_all) } it { is_expected.to have_many(:email_messages).class_name("Ahoy::Message").dependent(:destroy) } - it { is_expected.to have_many(:endorsements).dependent(:destroy) } it { is_expected.to have_many(:field_test_memberships).class_name("FieldTest::Membership").dependent(:destroy) } it { is_expected.to have_many(:github_repos).dependent(:destroy) } it { is_expected.to have_many(:html_variants).dependent(:destroy) }