fixed 创建仓库开通建木DevOps
This commit is contained in:
parent
309ba151be
commit
311852234f
|
@ -4,10 +4,19 @@ class BindUsersController < ApplicationController
|
||||||
def create
|
def create
|
||||||
# user = CreateBindUserService.call(create_params)
|
# user = CreateBindUserService.call(create_params)
|
||||||
#
|
#
|
||||||
|
Rails.logger.debug "--------------开始绑定用户------------"
|
||||||
|
Rails.logger.debug "--------------params: #{params.to_unsafe_h}"
|
||||||
|
tip_exception '系统错误' if session[:unionid].blank?
|
||||||
|
|
||||||
|
bind_user = User.try_to_login(params[:username], params[:password])
|
||||||
|
tip_exception '用户名或者密码错误' if bind_user.blank?
|
||||||
|
tip_exception '用户名或者密码错误' unless bind_user.check_password?(params[:password].to_s)
|
||||||
|
tip_exception '该账号已被绑定,请更换其他账号进行绑定' if bind_user.bind_open_user?(params[:type].to_s)
|
||||||
|
|
||||||
if params[:type] == "qq"
|
if params[:type] == "qq"
|
||||||
begin
|
begin
|
||||||
user = CreateBindUserService.call(current_user, create_params)
|
OpenUsers::QQ.create!(user: bind_user, uid: session[:unionid])
|
||||||
successful_authentication(user) if user.id != current_user.id
|
successful_authentication(bind_user)
|
||||||
|
|
||||||
render_ok
|
render_ok
|
||||||
rescue ApplicationService::Error => ex
|
rescue ApplicationService::Error => ex
|
||||||
|
@ -15,13 +24,6 @@ class BindUsersController < ApplicationController
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
begin
|
begin
|
||||||
tip_exception '系统错误' if session[:unionid].blank?
|
|
||||||
|
|
||||||
bind_user = User.try_to_login(params[:username], params[:password])
|
|
||||||
tip_exception '用户名或者密码错误' if bind_user.blank?
|
|
||||||
tip_exception '用户名或者密码错误' unless bind_user.check_password?(params[:password].to_s)
|
|
||||||
tip_exception '该账号已被绑定,请更换其他账号进行绑定' if bind_user.bind_open_user?(params[:type].to_s)
|
|
||||||
|
|
||||||
OpenUsers::Wechat.create!(user: bind_user, uid: session[:unionid])
|
OpenUsers::Wechat.create!(user: bind_user, uid: session[:unionid])
|
||||||
successful_authentication(bind_user)
|
successful_authentication(bind_user)
|
||||||
|
|
||||||
|
|
|
@ -53,7 +53,7 @@ class ProjectsController < ApplicationController
|
||||||
ActiveRecord::Base.transaction do
|
ActiveRecord::Base.transaction do
|
||||||
Projects::CreateForm.new(project_params).validate!
|
Projects::CreateForm.new(project_params).validate!
|
||||||
@project = Projects::CreateService.new(current_user, project_params).call
|
@project = Projects::CreateService.new(current_user, project_params).call
|
||||||
|
OpenProjectDevOpsJob.perform_later(@project&.id, current_user.id)
|
||||||
end
|
end
|
||||||
rescue Exception => e
|
rescue Exception => e
|
||||||
uid_logger_error(e.message)
|
uid_logger_error(e.message)
|
||||||
|
@ -84,6 +84,7 @@ class ProjectsController < ApplicationController
|
||||||
else
|
else
|
||||||
Projects::MigrateService.call(current_user, mirror_params)
|
Projects::MigrateService.call(current_user, mirror_params)
|
||||||
end
|
end
|
||||||
|
OpenProjectDevOpsJob.perform_later(@project&.id, current_user.id)
|
||||||
rescue Exception => e
|
rescue Exception => e
|
||||||
uid_logger_error(e.message)
|
uid_logger_error(e.message)
|
||||||
tip_exception(e.message)
|
tip_exception(e.message)
|
||||||
|
|
|
@ -0,0 +1,18 @@
|
||||||
|
class OpenProjectDevOpsJob < ApplicationJob
|
||||||
|
include ProjectsHelper
|
||||||
|
|
||||||
|
queue_as :message
|
||||||
|
|
||||||
|
def perform(project_id, user_id)
|
||||||
|
project = Project.find_by(id: project_id)
|
||||||
|
user = User.find_by(id: user_id)
|
||||||
|
url = "#{jianmu_devops_url}/#{jianmu_devops_code(project, user)}"
|
||||||
|
puts "jianmu_devops_url ===== #{url}"
|
||||||
|
http = Net::HTTP.new(url.host, url.port)
|
||||||
|
request = Net::HTTP::Get.new(url)
|
||||||
|
response = http.request(request)
|
||||||
|
puts "jianmu_devops_url ===== #{response.body}"
|
||||||
|
SendTemplateMessageJob.perform_later('ProjectOpenDevOps', user_id, project_id)
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
|
@ -217,6 +217,14 @@ class SendTemplateMessageJob < ApplicationJob
|
||||||
receivers = project&.all_managers.where.not(id: operator&.id)
|
receivers = project&.all_managers.where.not(id: operator&.id)
|
||||||
receivers_string, content, notification_url = MessageTemplate::ProjectPraised.get_message_content(receivers, operator, project)
|
receivers_string, content, notification_url = MessageTemplate::ProjectPraised.get_message_content(receivers, operator, project)
|
||||||
Notice::Write::CreateService.call(receivers_string, content, notification_url, source, {operator_id: operator.id, project_id: project.id})
|
Notice::Write::CreateService.call(receivers_string, content, notification_url, source, {operator_id: operator.id, project_id: project.id})
|
||||||
|
when 'ProjectOpenDevOps'
|
||||||
|
operator_id, project_id = args[0], args[1]
|
||||||
|
operator = User.find_by_id(operator_id)
|
||||||
|
project = Project.find_by_id(project_id)
|
||||||
|
return unless operator.present? && project.present?
|
||||||
|
receivers = User.where(id: operator.id)
|
||||||
|
receivers_string, content, notification_url = MessageTemplate::ProjectOpenDevOps.get_message_content(receivers, operator, project)
|
||||||
|
Notice::Write::CreateService.call(receivers_string, content, notification_url, source, {operator_id: operator.id, project_id: project.id})
|
||||||
when 'ProjectPullRequest'
|
when 'ProjectPullRequest'
|
||||||
operator_id, pull_request_id = args[0], args[1]
|
operator_id, pull_request_id = args[0], args[1]
|
||||||
operator = User.find_by_id(operator_id)
|
operator = User.find_by_id(operator_id)
|
||||||
|
|
|
@ -52,6 +52,7 @@ class MessageTemplate < ApplicationRecord
|
||||||
email_html = File.read("#{email_template_html_dir}/project_milestone_completed.html")
|
email_html = File.read("#{email_template_html_dir}/project_milestone_completed.html")
|
||||||
self.create(type: 'MessageTemplate::ProjectMilestoneCompleted', sys_notice: '在 <b>{nickname}/{repository}</b> 仓库,里程碑 <b>{name}</b> 的完成度已达到100%', notification_url: '{baseurl}/{owner}/{identifier}/milestones/{id}', email: email_html, email_title: "#{PLATFORM}: 仓库 {nickname}/{repository} 有里程碑已完成")
|
self.create(type: 'MessageTemplate::ProjectMilestoneCompleted', sys_notice: '在 <b>{nickname}/{repository}</b> 仓库,里程碑 <b>{name}</b> 的完成度已达到100%', notification_url: '{baseurl}/{owner}/{identifier}/milestones/{id}', email: email_html, email_title: "#{PLATFORM}: 仓库 {nickname}/{repository} 有里程碑已完成")
|
||||||
self.create(type: 'MessageTemplate::ProjectPraised', sys_notice: '<b>{nickname1}</b> 点赞了你管理的仓库 <b>{nickname2}/{repository}</b>', notification_url: '{baseurl}/{login}')
|
self.create(type: 'MessageTemplate::ProjectPraised', sys_notice: '<b>{nickname1}</b> 点赞了你管理的仓库 <b>{nickname2}/{repository}</b>', notification_url: '{baseurl}/{login}')
|
||||||
|
self.create(type: 'MessageTemplate::ProjectOpenDevOps', sys_notice: '您的仓库 <b>{nickname1}</b> 已成功开通引擎服务,可通过简单的节点编排完成自动化集成与部署。欢迎体验!', notification_url: '{baseurl}/{owner}/{identifier}')
|
||||||
email_html = File.read("#{email_template_html_dir}/project_pull_request.html")
|
email_html = File.read("#{email_template_html_dir}/project_pull_request.html")
|
||||||
self.create(type: 'MessageTemplate::ProjectPullRequest', sys_notice: '{nickname1}在 <b>{nickname2}/{repository}</b> 提交了一个合并请求:<b>{title}</b>', notification_url: '{baseurl}/{owner}/{identifier}/pulls/{id}', email: email_html, email_title: "#{PLATFORM}: {nickname1} 在 {nickname2}/{repository} 提交了一个合并请求")
|
self.create(type: 'MessageTemplate::ProjectPullRequest', sys_notice: '{nickname1}在 <b>{nickname2}/{repository}</b> 提交了一个合并请求:<b>{title}</b>', notification_url: '{baseurl}/{owner}/{identifier}/pulls/{id}', email: email_html, email_title: "#{PLATFORM}: {nickname1} 在 {nickname2}/{repository} 提交了一个合并请求")
|
||||||
email_html = File.read("#{email_template_html_dir}/project_role.html")
|
email_html = File.read("#{email_template_html_dir}/project_role.html")
|
||||||
|
|
|
@ -0,0 +1,28 @@
|
||||||
|
# == Schema Information
|
||||||
|
#
|
||||||
|
# Table name: message_templates
|
||||||
|
#
|
||||||
|
# id :integer not null, primary key
|
||||||
|
# type :string(255)
|
||||||
|
# sys_notice :text(65535)
|
||||||
|
# email :text(65535)
|
||||||
|
# created_at :datetime not null
|
||||||
|
# updated_at :datetime not null
|
||||||
|
# notification_url :string(255)
|
||||||
|
# email_title :string(255)
|
||||||
|
#
|
||||||
|
|
||||||
|
# 我管理的仓库项目设置被更改
|
||||||
|
class MessageTemplate::ProjectOpenDevOps < MessageTemplate
|
||||||
|
|
||||||
|
# MessageTemplate::ProjectOpenDevOps.get_message_content(User.where(login: 'yystopf'))
|
||||||
|
def self.get_message_content(receivers, user, project)
|
||||||
|
return '', '', '' if receivers.blank?
|
||||||
|
content = sys_notice.gsub('{repository}', project&.name)
|
||||||
|
url = notification_url.gsub('{owner}', project&.owner&.login).gsub('{identifier}', project&.identifier)
|
||||||
|
return receivers_string(receivers), content, url
|
||||||
|
rescue => e
|
||||||
|
Rails.logger.info("MessageTemplate::ProjectOpenDevOps.get_message_content [ERROR] #{e}")
|
||||||
|
return '', '', ''
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in New Issue