Update setting api

This commit is contained in:
jasder
2021-03-31 09:49:05 +08:00
parent fc522be5ea
commit 3869529620
5 changed files with 171 additions and 93 deletions
+44 -18
View File
@@ -1,31 +1,57 @@
class SettingsController < ApplicationController
def show
@old_projects_url = nil
@old_projects_url = "https://www.trustie.net/users/#{current_user.try(:login)}/projects" if User.current.logged?
get_add_menu
get_common_menu
get_personal_menu
end
@add = Site.add.select(:id, :name, :url, :key)
@personal =
private
def get_add_menu
@add = []
Site.add.select(:id, :name, :url, :key).to_a.map(&:serializable_hash).each do |site|
hash = {}
site.each {|k, v|
hash.merge!("#{k}": set_site_url(k, v))
}
@add << hash
end
end
def get_common_menu
@common = []
Site.common.select(:id, :name, :url, :key).to_a.map(&:serializable_hash).each do |site|
next if site["url"].to_s.include?("current_user") && !User.current.logged?
hash = {}
site.each {|k, v|
hash.merge!("#{k}": set_site_url(k, v))
}
@common << hash
end
end
def get_personal_menu
@personal = []
if User.current.logged?
arr =[]
Site.personal.select(:id, :name, :url, :key).to_a.map(&:serializable_hash).each do |site|
hash = {}
site.each {|k, v|
hash.merge!("#{k}": v.to_s.include?("current_user") ? v.split('current_user').join(current_user&.login) : v)
hash.merge!("#{k}": set_site_url(k, v))
}
arr << hash
@personal << hash
end
else
[]
end
@common = []
Site.common.select(:id, :name, :url, :key).to_a.map(&:serializable_hash).each do |site|
next if site["url"].to_s.include?("current_user") && !User.current.logged?
hash = {}
site.each {|k, v|
hash.merge!("#{k}": v.to_s.include?("current_user") ? v.split('current_user').join(current_user&.login) : v)
}
@common << hash
end
end
def set_site_url(key, value)
value =
if value.to_s.include?("current_user")
split_arr = value.split('current_user')
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
end
end