Rollback Listing Endorsements implementation (#12136)
* all but schema and mig file * drop ListingEndorsements table * actually drop the table (sheesh!)
This commit is contained in:
parent
4aaeb3e955
commit
ad52f7b0f3
10 changed files with 12 additions and 78 deletions
|
|
@ -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?
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
|
|||
11
db/migrate/20210105183127_drop_listing_endorsements_table.rb
Normal file
11
db/migrate/20210105183127_drop_listing_endorsements_table.rb
Normal 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
|
||||
15
db/schema.rb
15
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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -1,8 +0,0 @@
|
|||
FactoryBot.define do
|
||||
factory :listing_endorsement do
|
||||
user
|
||||
listing
|
||||
content { "#{Faker::Lorem.sentence} " }
|
||||
approved { true }
|
||||
end
|
||||
end
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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) }
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue