human-essentials icon indicating copy to clipboard operation
human-essentials copied to clipboard

PartnerRequest table - deletion?

Open cielf opened this issue 10 months ago • 10 comments

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.

cielf avatar Jan 28 '25 14:01 cielf

Note: In a support request today, I see that PartnerRequest is referred to in the ItemRequest table.

cielf avatar Jan 28 '25 20:01 cielf

Hello, I'm a first time contributor. Could I take this on ?

Oce-ane avatar Jan 31 '25 20:01 Oce-ane

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.

cielf avatar Jan 31 '25 21:01 cielf

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.new l.12 @partner_request.item_requests.build l.18 @partner_request.item_requests.build l.25 comments: partner_request_params[:comments], l.26 item_requests_attributes: partner_request_params[:item_requests_attributes]&.values || [] l.32 redirect_to partners_request_path(create_service.partner_request.id) l.34 @partner_request = create_service.partner_request l.49 comments: partner_request_params[:comments], l.50 item_requests_attributes: partner_request_params[:item_requests_attributes]&.values || [] l.54 @partner_request = create_service.partner_request l.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_request l.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_request l.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_request l.20 @partner_request.save! l.22 NotifyPartnerJob.perform_now(@partner_request.id) l.32 NotifyPartnerJob.perform_now(@partner_request.id) l.39 @partner_request = populate_item_request(partner_request) l.40 @partner_request.assign_attributes(additional_attrs) l.42 unless @partner_request.valid? l.43 @partner_request.errors.each do |error| l.55 def populate_item_request(partner_request) l.95 partner_request.item_requests << item_request l.99 partner_request.request_items = partner_request.item_requests.map do |ir| l.107 partner_request

  • app/services/partners/family_request_create_service.rb l.9 attr_reader :partner_user_id, :comments, :family_requests_attributes, :partner_request, :request_type l.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

Oce-ane avatar Feb 02 '25 09:02 Oce-ane

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!

cielf avatar Feb 03 '25 00:02 cielf

I will have a another look and try to delete the table locally to see what happens then and will let you know

Oce-ane avatar Feb 03 '25 06:02 Oce-ane

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.

github-actions[bot] avatar Mar 06 '25 00:03 github-actions[bot]

Hey @Oce-ane -- are you still working on this?

cielf avatar Mar 06 '25 20:03 cielf

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.

github-actions[bot] avatar Apr 06 '25 00:04 github-actions[bot]

Automatically unassigned after 7 days of inactivity.

github-actions[bot] avatar Apr 13 '25 00:04 github-actions[bot]

Hi, I’d like to work on this issue.

hagiya0121 avatar Aug 08 '25 05:08 hagiya0121

Please do

cielf avatar Aug 08 '25 17:08 cielf