1. 新增邮件通知相关url

2. 项目设置新增邮件通知和钉钉通知开关
This commit is contained in:
azhengzz 2021-02-21 18:16:54 +08:00
parent 792dea5f8e
commit dec740308f
1 changed files with 121 additions and 2 deletions

View File

@ -19,7 +19,7 @@ from app.utils.util import get_form_from_request, exception_handle
from app.models import Case, Project, Module, Scene, HTTPCase, SSHCase, SQLCase, Dispatcher, DispatcherDetail, Report, \
SubElementInLogicController, LogicController, IfController, WhileController, LoopController, SimpleController, \
Scheduler, DingTalkRobotSetting, DingTalkRobotSettingAssociationProject, DebugCase, Tool, TimerTool, ScriptTool, \
VariableDefinitionTool
VariableDefinitionTool, EmailReceiverSetting, EmailReceiverSettingAssociationProject
from app.template_global import render_to_json
from app.extensions import http_cookie_manager, dispatcher_scheduler
from app.template_global import sort_by_order_in_project, sort_by_order_in_module, sort_by_order_in_logic_controller
@ -1178,6 +1178,8 @@ def get_project_list_data():
'create_time': str(project.create_time),
'last_updated_time': str(project.last_updated_time),
'stop_on_error': project.project_advanced_configuration.stop_on_error,
'ding_talk_notify': project.project_advanced_configuration.ding_talk_notify,
'email_notify': project.project_advanced_configuration.email_notify,
'use_scheduler': use_scheduler,
'cron': cron,
})
@ -1257,6 +1259,10 @@ def modify_project_config():
if not exist: return form_id
exist, form_stop_on_error = get_form_from_request(request, 'stop_on_error')
if not exist: return form_stop_on_error
exist, form_ding_talk_notify = get_form_from_request(request, 'ding_talk_notify')
if not exist: return form_ding_talk_notify
exist, form_email_notify = get_form_from_request(request, 'email_notify')
if not exist: return form_email_notify
exist, form_use_scheduler = get_form_from_request(request, 'use_scheduler')
if not exist: return form_use_scheduler
exist, form_cron = get_form_from_request(request, 'cron')
@ -1268,7 +1274,11 @@ def modify_project_config():
'error_no': -1,
'error_msg': '未找到该项目数据项目id: %s' % form_id,
})
project.project_advanced_configuration.update(stop_on_error=form_stop_on_error.lower() == 'true')
project.project_advanced_configuration.update(
stop_on_error=form_stop_on_error.lower() == 'true',
ding_talk_notify=form_ding_talk_notify.lower() == 'true',
email_notify=form_email_notify.lower() == 'true',
)
# 设置定时任务
job_id = 'project-' + form_id
enable = form_use_scheduler.lower() == 'true'
@ -2642,3 +2652,112 @@ def delete_ding_talk_robot_setting():
'error_no': 0,
'error_msg': '',
})
@bp.route('/setting/email_receiver_setting/get', methods=['POST'])
def get_email_receiver_setting():
try:
email_receiver_settings = EmailReceiverSetting.query.all()
ret = []
for email_receiver_setting in email_receiver_settings:
association_projects = EmailReceiverSettingAssociationProject.query.filter_by(setting_id=email_receiver_setting.id).all()
projects = [row.project_id for row in association_projects]
ret.append({
'id': email_receiver_setting.id,
'enable': email_receiver_setting.enable,
'name': email_receiver_setting.name,
'address': email_receiver_setting.address,
'projects': projects,
})
except Exception as e:
exception_handle(current_app, e)
return jsonify({
'error_no': -1,
'error_msg': '错误信息 [' + repr(e) + ']',
})
else:
return jsonify(ret)
@bp.route('/setting/email_receiver_setting/add', methods=['POST'])
def add_email_receiver_setting():
exist, form_enable = get_form_from_request(request, 'enable')
if not exist: return form_enable
exist, form_projects = get_form_from_request(request, 'projects')
if not exist: return form_projects
exist, form_name = get_form_from_request(request, 'name')
if not exist: return form_name
exist, form_address = get_form_from_request(request, 'address')
if not exist: return form_address
try:
projects = json.loads(form_projects)
EmailReceiverSetting.add(
enable=form_enable.lower() == 'true',
name=form_name,
address=form_address,
projects=projects,
)
except Exception as e:
exception_handle(current_app, e)
return jsonify({
'error_no': -1,
'error_msg': '错误信息 [' + repr(e) + ']',
})
else:
return jsonify({
'error_no': 0,
'error_msg': '',
})
@bp.route('/setting/email_receiver_setting/modify', methods=['POST'])
def modify_email_receiver_setting():
exist, form_id = get_form_from_request(request, 'id')
if not exist: return form_id
exist, form_enable = get_form_from_request(request, 'enable')
if not exist: return form_enable
exist, form_projects = get_form_from_request(request, 'projects')
if not exist: return form_projects
exist, form_name = get_form_from_request(request, 'name')
if not exist: return form_name
exist, form_address = get_form_from_request(request, 'address')
if not exist: return form_address
try:
projects = json.loads(form_projects)
EmailReceiverSetting.modify(
id=form_id,
enable=form_enable.lower() == 'true',
name=form_name,
address=form_address,
projects=projects,
)
except Exception as e:
exception_handle(current_app, e)
return jsonify({
'error_no': -1,
'error_msg': '错误信息 [' + repr(e) + ']',
})
else:
return jsonify({
'error_no': 0,
'error_msg': '',
})
@bp.route('/setting/email_receiver_setting/delete', methods=['POST'])
def delete_email_receiver_setting():
exist, form_id = get_form_from_request(request, 'id')
if not exist: return form_id
try:
EmailReceiverSetting.delete(id=form_id)
except Exception as e:
exception_handle(current_app, e)
return jsonify({
'error_no': -1,
'error_msg': '错误信息 [' + repr(e) + ']',
})
else:
return jsonify({
'error_no': 0,
'error_msg': '',
})