Browse Source

fixed 创建仓库开通建木DevOps

pull/313/head
xxq250 3 years ago
parent
commit
311852234f
6 changed files with 68 additions and 10 deletions
  1. +11
    -9
      app/controllers/bind_users_controller.rb
  2. +2
    -1
      app/controllers/projects_controller.rb
  3. +18
    -0
      app/jobs/open_project_dev_ops_job.rb
  4. +8
    -0
      app/jobs/send_template_message_job.rb
  5. +1
    -0
      app/models/message_template.rb
  6. +28
    -0
      app/models/message_template/project_open_dev_ops.rb

+ 11
- 9
app/controllers/bind_users_controller.rb View File

@@ -4,10 +4,19 @@ class BindUsersController < ApplicationController
def create
# 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"
begin
user = CreateBindUserService.call(current_user, create_params)
successful_authentication(user) if user.id != current_user.id
OpenUsers::QQ.create!(user: bind_user, uid: session[:unionid])
successful_authentication(bind_user)

render_ok
rescue ApplicationService::Error => ex
@@ -15,13 +24,6 @@ class BindUsersController < ApplicationController
end
else
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])
successful_authentication(bind_user)



+ 2
- 1
app/controllers/projects_controller.rb View File

@@ -53,7 +53,7 @@ class ProjectsController < ApplicationController
ActiveRecord::Base.transaction do
Projects::CreateForm.new(project_params).validate!
@project = Projects::CreateService.new(current_user, project_params).call
OpenProjectDevOpsJob.perform_later(@project&.id, current_user.id)
end
rescue Exception => e
uid_logger_error(e.message)
@@ -84,6 +84,7 @@ class ProjectsController < ApplicationController
else
Projects::MigrateService.call(current_user, mirror_params)
end
OpenProjectDevOpsJob.perform_later(@project&.id, current_user.id)
rescue Exception => e
uid_logger_error(e.message)
tip_exception(e.message)


+ 18
- 0
app/jobs/open_project_dev_ops_job.rb View File

@@ -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

+ 8
- 0
app/jobs/send_template_message_job.rb View File

@@ -217,6 +217,14 @@ class SendTemplateMessageJob < ApplicationJob
receivers = project&.all_managers.where.not(id: operator&.id)
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})
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'
operator_id, pull_request_id = args[0], args[1]
operator = User.find_by_id(operator_id)


+ 1
- 0
app/models/message_template.rb View File

@@ -52,6 +52,7 @@ class MessageTemplate < ApplicationRecord
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::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")
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")


+ 28
- 0
app/models/message_template/project_open_dev_ops.rb View File

@@ -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…
Cancel
Save