tfse-model-api-v0.2/Certificate/routes.py

70 lines
2.1 KiB
Python
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.

import datetime
import os
import time
from flask import Blueprint, request
from Certificate.PdfCertificate import CertificateGenerator
from Certificate.scripts.common import get_certificate_data
from Certificate.scripts.path_tool import get_gen_report_path
from Certificate.db import upload_pdf
from common.scripts import verify_token
certificate_route = Blueprint('certificate', __name__)
@certificate_route.route('/generate_certificate', methods=['POST'])
@verify_token
def gen_certificate():
"""
描述
Parameters:
company str 企业名称
cid str 企业ID
rid str 评价ID
Returns:
result: 证书FileID
"""
def certificate(param):
"""
生成证书pdf
Parameters:
param: dict 证书所需数据
Returns:
res: 处理成功返回报告FileID处理失败返回False
"""
# 生成PDF报告文件以时间戳命名临时存储
certificate_file_name = '{}_{}.pdf'.format(req_body['company'], datetime.datetime.now().strftime('%Y%m%d'))
pdf_report = CertificateGenerator(name=certificate_file_name, text_data=param)
pdf_report.gen()
return certificate_file_name
def save_certificate(param):
"""
保存证书pdf
Parameters:
param: 证书pdf
Returns:
res: 处理成功返回报告FileID处理失败返回False
"""
# 保存PDF报告文件删除临时存储的报告
file_id = upload_pdf(param)
certificate_path = get_gen_report_path(name=param)
os.remove(certificate_path)
# 保存PDF报告成功返回FileID;保存PDF报告文件失败返回False
return file_id if file_id else False
# Parameters
req_body = request.json # 接收的json格式请求体
text_data = get_certificate_data(req_body)
certifice_pdf = certificate(text_data)
result = save_certificate(certifice_pdf)
if result is not False:
return {"info": "生成证书成功", "result": {"FileID": result}}, 200
else:
return {"info": "生成证书失败"}, 210