Rollback Listing Endorsements implementation (#12136)

* all but schema and mig file

* drop ListingEndorsements table

* actually drop the table (sheesh!)
This commit is contained in:
Arit Amana 2021-01-06 11:01:29 -05:00 committed by GitHub
parent 4aaeb3e955
commit ad52f7b0f3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
10 changed files with 12 additions and 78 deletions

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -1,8 +0,0 @@
FactoryBot.define do
factory :listing_endorsement do
user
listing
content { "#{Faker::Lorem.sentence} " }
approved { true }
end
end

View file

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

View file

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

View file

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