mirror of
https://github.com/discourse/discourse.git
synced 2025-05-30 15:28:37 +08:00
DEV: Apply syntax_tree formatting to app/*
This commit is contained in:
@ -1,6 +1,6 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require 'csv'
|
||||
require "csv"
|
||||
|
||||
class Admin::BadgesController < Admin::AdminController
|
||||
MAX_CSV_LINES = 50_000
|
||||
@ -10,25 +10,29 @@ class Admin::BadgesController < Admin::AdminController
|
||||
data = {
|
||||
badge_types: BadgeType.all.order(:id).to_a,
|
||||
badge_groupings: BadgeGrouping.all.order(:position).to_a,
|
||||
badges: Badge.includes(:badge_grouping)
|
||||
.includes(:badge_type, :image_upload)
|
||||
.references(:badge_grouping)
|
||||
.order('badge_groupings.position, badge_type_id, badges.name').to_a,
|
||||
badges:
|
||||
Badge
|
||||
.includes(:badge_grouping)
|
||||
.includes(:badge_type, :image_upload)
|
||||
.references(:badge_grouping)
|
||||
.order("badge_groupings.position, badge_type_id, badges.name")
|
||||
.to_a,
|
||||
protected_system_fields: Badge.protected_system_fields,
|
||||
triggers: Badge.trigger_hash
|
||||
triggers: Badge.trigger_hash,
|
||||
}
|
||||
render_serialized(OpenStruct.new(data), AdminBadgesSerializer)
|
||||
end
|
||||
|
||||
def preview
|
||||
unless SiteSetting.enable_badge_sql
|
||||
return render json: "preview not allowed", status: 403
|
||||
end
|
||||
return render json: "preview not allowed", status: 403 unless SiteSetting.enable_badge_sql
|
||||
|
||||
render json: BadgeGranter.preview(params[:sql],
|
||||
target_posts: params[:target_posts] == "true",
|
||||
explain: params[:explain] == "true",
|
||||
trigger: params[:trigger].to_i)
|
||||
render json:
|
||||
BadgeGranter.preview(
|
||||
params[:sql],
|
||||
target_posts: params[:target_posts] == "true",
|
||||
explain: params[:explain] == "true",
|
||||
trigger: params[:trigger].to_i,
|
||||
)
|
||||
end
|
||||
|
||||
def new
|
||||
@ -47,18 +51,21 @@ class Admin::BadgesController < Admin::AdminController
|
||||
|
||||
if !badge.enabled?
|
||||
render_json_error(
|
||||
I18n.t('badges.mass_award.errors.badge_disabled', badge_name: badge.display_name),
|
||||
status: 422
|
||||
I18n.t("badges.mass_award.errors.badge_disabled", badge_name: badge.display_name),
|
||||
status: 422,
|
||||
)
|
||||
return
|
||||
end
|
||||
|
||||
replace_badge_owners = params[:replace_badge_owners] == 'true'
|
||||
ensure_users_have_badge_once = params[:grant_existing_holders] != 'true'
|
||||
replace_badge_owners = params[:replace_badge_owners] == "true"
|
||||
ensure_users_have_badge_once = params[:grant_existing_holders] != "true"
|
||||
if !ensure_users_have_badge_once && !badge.multiple_grant?
|
||||
render_json_error(
|
||||
I18n.t('badges.mass_award.errors.cant_grant_multiple_times', badge_name: badge.display_name),
|
||||
status: 422
|
||||
I18n.t(
|
||||
"badges.mass_award.errors.cant_grant_multiple_times",
|
||||
badge_name: badge.display_name,
|
||||
),
|
||||
status: 422,
|
||||
)
|
||||
return
|
||||
end
|
||||
@ -72,7 +79,7 @@ class Admin::BadgesController < Admin::AdminController
|
||||
line_number += 1
|
||||
|
||||
if line.present?
|
||||
if line.include?('@')
|
||||
if line.include?("@")
|
||||
emails << line
|
||||
else
|
||||
usernames << line
|
||||
@ -80,26 +87,35 @@ class Admin::BadgesController < Admin::AdminController
|
||||
end
|
||||
|
||||
if emails.size + usernames.size > MAX_CSV_LINES
|
||||
return render_json_error I18n.t('badges.mass_award.errors.too_many_csv_entries', count: MAX_CSV_LINES), status: 400
|
||||
return(
|
||||
render_json_error I18n.t(
|
||||
"badges.mass_award.errors.too_many_csv_entries",
|
||||
count: MAX_CSV_LINES,
|
||||
),
|
||||
status: 400
|
||||
)
|
||||
end
|
||||
end
|
||||
end
|
||||
BadgeGranter.revoke_all(badge) if replace_badge_owners
|
||||
|
||||
results = BadgeGranter.enqueue_mass_grant_for_users(
|
||||
badge,
|
||||
emails: emails,
|
||||
usernames: usernames,
|
||||
ensure_users_have_badge_once: ensure_users_have_badge_once
|
||||
)
|
||||
results =
|
||||
BadgeGranter.enqueue_mass_grant_for_users(
|
||||
badge,
|
||||
emails: emails,
|
||||
usernames: usernames,
|
||||
ensure_users_have_badge_once: ensure_users_have_badge_once,
|
||||
)
|
||||
|
||||
render json: {
|
||||
unmatched_entries: results[:unmatched_entries].first(100),
|
||||
matched_users_count: results[:matched_users_count],
|
||||
unmatched_entries_count: results[:unmatched_entries_count]
|
||||
}, status: :ok
|
||||
unmatched_entries: results[:unmatched_entries].first(100),
|
||||
matched_users_count: results[:matched_users_count],
|
||||
unmatched_entries_count: results[:unmatched_entries_count],
|
||||
},
|
||||
status: :ok
|
||||
rescue CSV::MalformedCSVError
|
||||
render_json_error I18n.t('badges.mass_award.errors.invalid_csv', line_number: line_number), status: 400
|
||||
render_json_error I18n.t("badges.mass_award.errors.invalid_csv", line_number: line_number),
|
||||
status: 400
|
||||
end
|
||||
|
||||
def badge_types
|
||||
@ -119,9 +135,7 @@ class Admin::BadgesController < Admin::AdminController
|
||||
group.save
|
||||
end
|
||||
|
||||
badge_groupings.each do |g|
|
||||
g.destroy unless g.system? || ids.include?(g.id)
|
||||
end
|
||||
badge_groupings.each { |g| g.destroy unless g.system? || ids.include?(g.id) }
|
||||
|
||||
badge_groupings = BadgeGrouping.all.order(:position).to_a
|
||||
render_serialized(badge_groupings, BadgeGroupingSerializer, root: "badge_groupings")
|
||||
@ -173,21 +187,23 @@ class Admin::BadgesController < Admin::AdminController
|
||||
def update_badge_from_params(badge, opts = {})
|
||||
errors = []
|
||||
Badge.transaction do
|
||||
allowed = Badge.column_names.map(&:to_sym)
|
||||
allowed -= [:id, :created_at, :updated_at, :grant_count]
|
||||
allowed = Badge.column_names.map(&:to_sym)
|
||||
allowed -= %i[id created_at updated_at grant_count]
|
||||
allowed -= Badge.protected_system_fields if badge.system?
|
||||
allowed -= [:query] unless SiteSetting.enable_badge_sql
|
||||
|
||||
params.permit(*allowed)
|
||||
|
||||
allowed.each do |key|
|
||||
badge.public_send("#{key}=" , params[key]) if params[key]
|
||||
end
|
||||
allowed.each { |key| badge.public_send("#{key}=", params[key]) if params[key] }
|
||||
|
||||
# Badge query contract checks
|
||||
begin
|
||||
if SiteSetting.enable_badge_sql
|
||||
BadgeGranter.contract_checks!(badge.query, target_posts: badge.target_posts, trigger: badge.trigger)
|
||||
BadgeGranter.contract_checks!(
|
||||
badge.query,
|
||||
target_posts: badge.target_posts,
|
||||
trigger: badge.trigger,
|
||||
)
|
||||
end
|
||||
rescue => e
|
||||
errors << e.message
|
||||
@ -203,7 +219,7 @@ class Admin::BadgesController < Admin::AdminController
|
||||
:bulk_user_title_update,
|
||||
new_title: badge.name,
|
||||
granted_badge_id: badge.id,
|
||||
action: Jobs::BulkUserTitleUpdate::UPDATE_ACTION
|
||||
action: Jobs::BulkUserTitleUpdate::UPDATE_ACTION,
|
||||
)
|
||||
end
|
||||
|
||||
|
Reference in New Issue
Block a user