11# frozen_string_literal: true
22
33class Admin ::UsersController < Admin ::BaseController
4- include Pagy :: Backend
4+ include Admin :: FetchUser
55 include MassTransferPurchases
66
77 skip_before_action :require_admin! , if : :request_from_iffy? , only : %i[ suspend_for_fraud_from_iffy mark_compliant_from_iffy flag_for_explicit_nsfw_tos_violation_from_iffy ]
88
9- before_action :fetch_user , except : %i[ refund_queue block_ip_address ]
10-
11- helper Pagy ::UrlHelpers
12-
13- PRODUCTS_ORDER = Arel . sql ( "ISNULL(COALESCE(purchase_disabled_at, banned_at, links.deleted_at)) DESC, created_at DESC" )
14- PRODUCTS_PER_PAGE = 10
9+ before_action :fetch_user , except : %i[ block_ip_address ]
1510
1611 def show
1712 @title = "#{ @user . display_name } on Gumroad"
18- @pagy , @products = pagy ( @user . links . order ( PRODUCTS_ORDER ) , limit : PRODUCTS_PER_PAGE )
13+
1914 respond_to do |format |
20- format . html
15+ format . html do
16+ render inertia : "Admin/Users/Show" ,
17+ props : {
18+ user : Admin ::UserPresenter ::Card . new ( user : @user , pundit_user :) . props ,
19+ }
20+ end
2121 format . json { render json : @user }
2222 end
2323 end
@@ -193,10 +193,9 @@ def add_credit
193193 def set_custom_fee
194194 custom_fee_per_thousand = params [ :custom_fee_percent ] . present? ? ( params [ :custom_fee_percent ] . to_f * 10 ) . round : nil
195195 @user . update! ( custom_fee_per_thousand :)
196-
197196 render json : { success : true }
198- rescue => e
199- render json : { success : false , message : e . message }
197+ rescue ActiveRecord :: RecordInvalid => e
198+ render json : { success : false , message : e . message } , status : :unprocessable_content
200199 end
201200
202201 def toggle_adult_products
@@ -208,17 +207,6 @@ def toggle_adult_products
208207 end
209208
210209 private
211- def fetch_user
212- if params [ :id ] . include? ( "@" )
213- @user = User . find_by ( email : params [ :id ] )
214- else
215- @user = User . find_by ( username : params [ :id ] ) ||
216- User . find_by ( id : params [ :id ] )
217- end
218-
219- e404 unless @user
220- end
221-
222210 def mass_transfer_purchases_params
223211 params . require ( :mass_transfer_purchases ) . permit ( :new_email )
224212 end
0 commit comments