PartnerRequest table - deletion?
Summary
PartnerRequest - might not be used anymore. If it isn't we should delete it.
Why
Keeping things clean for future devs
Details
Double check that the Partner Request table is not referred to anywhere in the code. If it isn't, make a migration that drops the table. If it is, report back on this issue.
Criteria for completion
- [ ] confirm viability of dropping PartnerRequest table
- [ ] migration to PartnerRequest table dropped, if appropriate.
Note: In a support request today, I see that PartnerRequest is referred to in the ItemRequest table.
Hello, I'm a first time contributor. Could I take this on ?
Yes, you could! If you'd rather have something that will definitely include a code change, and get all the way through our process, you could try #4517 instead.
The PartnerRequest table is referred to in multiple parts of the code:
1. Models
-
app/models/request.rb l.30
has_many :item_requests, class_name: "Partners::ItemRequest", foreign_key: :partner_request_id, dependent: :destroy, inverse_of: :request -
app/models/partners/item_request.rb l.19
belongs_to :request, class_name: '::Request', foreign_key: :partner_request_id, inverse_of: :item_requests
2. Controllers
-
app/controllers/partners/requests_controller.rb l.7
@partner_requests = @partner.requests.includes(:item_requests).order(created_at: :desc).limit(10)l.11@partner_request = ::Request.newl.12@partner_request.item_requests.buildl.18@partner_request.item_requests.buildl.25comments: partner_request_params[:comments],l.26item_requests_attributes: partner_request_params[:item_requests_attributes]&.values || []l.32redirect_to partners_request_path(create_service.partner_request.id)l.34@partner_request = create_service.partner_requestl.49comments: partner_request_params[:comments],l.50item_requests_attributes: partner_request_params[:item_requests_attributes]&.values || []l.54@partner_request = create_service.partner_requestl.55@total_items = @partner_request.total_items -
app/controllers/partners/dashboards_controller.rb l.11
@partner_requests = @partner.requests.order(created_at: :desc).limit(10) -
app/controllers/partners/family_requests_controller.rb l.28
redirect_to partners_request_path(create_service.partner_request), notice: "Requested items successfully!"l.44@partner_request = create_service.partner_requestl.45@total_items = @partner_request.total_items -
app/controllers/partners/individuals_requests_controller.rb l.23
redirect_to partners_request_path(create_service.partner_request.id)l.45@partner_request = create_service.partner_requestl.46@total_items = @partner_request.total_items
3. Views
-
app/views/partners/requests/show.html.erb l.38
<%= @partner_request.id %>l.45<% if @partner_request.comments.present? %>l.46<%= @partner_request.comments %>l.56<% @partner_request.item_requests.each do |item| %>l.70<p class='text-lg'><%= @partner_request.created_at.localtime.strftime('%F %T') %></p> -
app/views/partners/requests/new.html.erb l.35
<%= simple_form_for @partner_request, url: partners_requests_path(@partner_request),l.55<%= render partial: 'item_request', locals: { form: form, item_units: @item_units }, object: @partner_request.item_requests.build %> -
app/views/partners/requests/_history.html.erb l.12
<% @partner_requests.each do |partner_request| %>l.16<%= partner_request.created_at.strftime("%b %-d %Y") %>l.18<td class="p-4"><%= partner_request.total_items %></td>l.20<% partner_request.item_requests.map do |item| %> -
app/views/partners/requests/validate.html.erb l.14
<% if Flipper.enabled?(:enable_packs) && @partner_request.item_requests.any?( &:request_unit ) %>l.20<% @partner_request.item_requests.each do |line_item| %>l.24<% if Flipper.enabled?(:enable_packs) && @partner_request.item_requests.any?( &:request_unit ) %>
4. Services
-
app/services/partners/request_create_service.rb l.5
attr_reader :partner_requestl.20@partner_request.save!l.22NotifyPartnerJob.perform_now(@partner_request.id)l.32NotifyPartnerJob.perform_now(@partner_request.id)l.39@partner_request = populate_item_request(partner_request)l.40@partner_request.assign_attributes(additional_attrs)l.42unless @partner_request.valid?l.43@partner_request.errors.each do |error|l.55def populate_item_request(partner_request)l.95partner_request.item_requests << item_requestl.99partner_request.request_items = partner_request.item_requests.map do |ir|l.107partner_request -
app/services/partners/family_request_create_service.rb l.9
attr_reader :partner_user_id, :comments, :family_requests_attributes, :partner_request, :request_typel.36@partner_request = request_create_svc.partner_request
5. Routes
- config/routes.rb
l.242
get :partner_requests
6. Migrations
-
db/schema.rb in the item_requests table in the partner_requests table in the users table
-
db/migrate/20220410141231_add_partner_tables.rb
-
db/migrate/20220716000647_remove_partner_user_foreign_key.rb
-
db/migrate/20221104191611_move_item_request_index.rb
-
db/migrate/20220717144949_validate_partner_user_foreign_keys.rb
-
db/migrate/20220717144531_fix_partner_user_foreign_keys.rb
-
db/partners_migrate/20210924155700_add_partner_user_id_to_partner_requests.rb
-
db/partners_migrate/20181027200916_create_requests.rb
-
db/partners_migrate/20190728152502_add_for_families_to_partner_request.rb
-
db/partners_migrate/20181027223440_create_items_for_partnerbase.rb
7. Seeds
- db/seeds.rb, between line 433 and line 474
8. Tests
- spec/services/partners/request_create_service_spec.rb
- spec/services/partners/family_request_create_service_spec.rb
- spec/models/partners/item_request_spec.rb
Let me know if you need anything else for this issue
I guess that means we're not deleting it immediately! Though I'm not sure all those references to partner_request are to the partner_request table per se. You see, in production there hasn't been a single update to the Partner Request table since Feb 4 2023.
But this gives us a comprehensive list of cases to check. Thank you!
I will have a another look and try to delete the table locally to see what happens then and will let you know
This issue is marked as stale due to no activity within 30 days. If no further activity is detected within 7 days, it will be unassigned.
Hey @Oce-ane -- are you still working on this?
This issue is marked as stale due to no activity within 30 days. If no further activity is detected within 7 days, it will be unassigned.
Automatically unassigned after 7 days of inactivity.
Hi, I’d like to work on this issue.
Please do