forgeplus/lib/tasks/update_educoder_user.rake

45 lines
1.6 KiB
Ruby
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

namespace :update_educoder_user do
desc "update educoder user mail phone"
task done: :environment do
data = User.where("mail like '%***%' or phone like '%***%'")
data = User.where(login: ENV['login']) if ENV['login'].present?
data.each do |user|
begin
req_params = { "login" => "#{user.login}", "private_token" => "hriEn3UwXfJs3PmyXnqQ" }
api_url = "https://data.educoder.net"
client = Faraday.new(url: api_url)
response = client.public_send("get", "/api/sources/get_user_info_by_login", req_params)
result = JSON.parse(response.body)
#查询
next if result["status"].to_s != "0"
# login 邮箱 手机号 姓名 学校/单位
user_info = result["data"]
Rails.logger.info("user_info====== #{user_info}")
login = user_info["login"]
email = user_info["mail"]
phone = user_info["phone"]
real_name = user_info["username"]
department_name = user_info["school"]
password = "12345678"
user.update_columns(mail: "#{email}", phone: "#{phone}", lastname: real_name nickname: real_name)
sync_params = {
email: email,
login_name: user.login,
source_id: 0
}
interactor = Gitea::User::UpdateInteractor.call(user.login, sync_params)
if interactor.success?
puts "success user: #{user.id} username:#{user.login}"
else
puts "error user: #{user.id} username:#{user.login}, error:#{interactor.error.to_s}"
end
rescue Exception => e
puts "error user: #{user.id} username:#{user.login}, error:#{e}"
end
end
end
end