FIX setting api bug

This commit is contained in:
jasder 2021-03-31 12:44:40 +08:00
parent 7d0b05f975
commit d2293a2778
2 changed files with 17 additions and 22 deletions

View File

@ -4,6 +4,8 @@ class SettingsController < ApplicationController
get_add_menu get_add_menu
get_common_menu get_common_menu
get_personal_menu get_personal_menu
puts @com
end end
private private
@ -12,21 +14,17 @@ class SettingsController < ApplicationController
Site.add.select(:id, :name, :url, :key).to_a.map(&:serializable_hash).each do |site| Site.add.select(:id, :name, :url, :key).to_a.map(&:serializable_hash).each do |site|
hash = {} hash = {}
site.each {|k, v| site.each {|k, v|
hash.merge!("#{k}": set_site_url(k, v)) hash.merge!("#{k}": get_site_url(k, v))
} }
@add << hash @add << hash
end end
end end
def get_common_menu def get_common_menu
@common = [] @common = {}
Site.common.select(:id, :name, :url, :key).to_a.map(&:serializable_hash).each do |site| Site.common.select(:url, :key).to_a.map(&:serializable_hash).each do |site|
next if site["url"].to_s.include?("current_user") && !User.current.logged? next if site["url"].to_s.include?("current_user") && !User.current.logged?
hash = {} @common.merge!("#{site["key"]}": reset_site_url(site['url']))
site.each {|k, v|
hash.merge!("#{k}": set_site_url(k, v))
}
@common << hash
end end
end end
@ -36,22 +34,22 @@ class SettingsController < ApplicationController
Site.personal.select(:id, :name, :url, :key).to_a.map(&:serializable_hash).each do |site| Site.personal.select(:id, :name, :url, :key).to_a.map(&:serializable_hash).each do |site|
hash = {} hash = {}
site.each {|k, v| site.each {|k, v|
hash.merge!("#{k}": set_site_url(k, v)) hash.merge!("#{k}": get_site_url(k, v))
} }
@personal << hash @personal << hash
end end
end end
end end
def set_site_url(key, value) def get_site_url(key, value)
value = url = reset_site_url(value)
if value.to_s.include?("current_user") key.to_s === "url" && !value.to_s.start_with?("http") ? [request.protocol, request.host_with_port, value].join('') : url
split_arr = value.split('current_user') end
split_arr.length > 1 ? split_arr.join(current_user&.login) : (split_arr << current_user&.login).join('')
else
value
end
key.to_s === "url" && !value.to_s.start_with?("http") ? [request.protocol, request.host_with_port, value].join('') : value def reset_site_url(url)
return url unless url.to_s.include?("current_user")
split_arr = url.split('current_user')
split_arr.length > 1 ? split_arr.join(current_user&.login) : (split_arr << current_user&.login).join('')
end end
end end

View File

@ -48,7 +48,6 @@ json.setting do
json.add do json.add do
# json.array! @add, :name, :url, :key
json.array! @add json.array! @add
end end
@ -56,7 +55,5 @@ json.setting do
json.array! @personal json.array! @personal
end end
json.common do json.common @common
json.array! @common
end
end end