You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
1.8 KiB
42 lines
1.8 KiB
6 years ago
|
namespace :shixun do
|
||
|
namespace :sync do
|
||
|
desc "sync users to gitlab"
|
||
|
task :myshixun => :environment do
|
||
|
shixun_tomcat = Redmine::Configuration['shixun_tomcat']
|
||
|
Shixun.all.each do |shixun|
|
||
|
begin
|
||
|
puts("shixun id is #{shixun.id}")
|
||
|
tpiList =[]
|
||
|
gameInfo = shixun.gameInfo
|
||
|
myshixuns = shixun.myshixuns
|
||
|
if myshixuns.present?
|
||
|
myshixuns.each do |myshixun|
|
||
|
puts("tpiID is #{myshixun.id}")
|
||
|
tpiID = myshixun.id
|
||
|
login = User.where(:id => myshixun.try(:user_id)).first.try(:login)
|
||
|
rep_identify = Repository.where(:myshixun_id => myshixun.id, :type => "Repository::Gitlab").first.try(:identifier)
|
||
|
gitlab_address = Redmine::Configuration['gitlab_address_ip']
|
||
|
instanceGitURL = gitlab_address.to_s+"/"+login+"/"+ rep_identify + "."+"git"
|
||
|
puts("instanceGitURL is #{instanceGitURL}")
|
||
|
tpiList << {:tpiID => tpiID, :instanceGitURL => instanceGitURL}
|
||
|
puts("###############{tpiList.to_json unless tpiList.blank?}")
|
||
|
tpiList = Base64.urlsafe_encode64(tpiList.to_json) unless tpiList.blank?
|
||
|
puts("************#{tpiList}")
|
||
|
end
|
||
|
end
|
||
|
params = {:gameInfo => "#{gameInfo}", :tpiList => "#{tpiList}" }
|
||
|
puts("params is #{params}")
|
||
|
uri = URI("#{shixun_tomcat}/bridge/dataTransfer/transfer")
|
||
|
uri = URI.parse(URI.encode("#{shixun_tomcat}/bridge/game/gameEvaluate".strip))
|
||
|
puts("uri is #{uri}")
|
||
|
res = Net::HTTP.post_form(uri, params).body
|
||
|
res = JSON.parse(res)
|
||
|
puts("=====res is #{res['code']}")
|
||
|
rescue Exception => e
|
||
|
puts("error ====> #{e.message}")
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|